今天看学习视频时关于java线程有疑惑想请教一下大家:
1.对于多核CPU,如果是多进程并行,那对每个进程来说,其中的线程是不是只能并发,不能同时并行。
一个核心只能处理一个任务,多线程并行和多进程并行(不是并发)是不是不能同时存在。
2.优先级高的线程抢占的时间片多,这里的时间片多,指的是抢占到时间片的概率高,还是每次抢占到的时间片的时间长,该线程运行的时间长。
请指点一下,谢谢。
学习时关于Java线程的疑问?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 於黾 2022-07-20 15:09关注
1.线程是cpu执行的最小单位,而进程是线程的一个打包,每个进程至少由一个线程组成
没有人说过cpu一次只能运行同一个进程里的一个线程啊,可以一个进程里的多个线程同时执行的
而且即使是单核cpu,多线程和单线程效果也完全不一样
如果你的进程只有一个线程,那你一旦执行了sleep,整个进程都被阻塞了;而如果你开2个线程,cpu就可以分时复用,把sleep的线程丢到后台去,先执行其他的线程
2.当cpu不繁忙的时候,它就会按顺序调用栈里的线程来执行;
当cpu变得繁忙了,它会优先调用优先级高的那些线程,忽略优先级低的线程
也就是概率变高了
这样在每次抢占时长不变的情况下,总时长是变长了的本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报