我有疑问
有10个不同的线程处于可运行状态。每个都具有优先级1到10. CPU如何调度或执行这些线程?
谢谢, 拉维
答案 0 :(得分:3)
此地点何时取代谷歌?
谷歌搜索Java线程调度,第一个结果:http://lass.cs.umass.edu/~shenoy/courses/fall01/labs/talab2.html
答案 1 :(得分:1)
主流Java实现使用“本机线程”,这意味着线程调度是通过操作系统完成的。 Java线程优先级simply map to OS-specific values。但是,您应该阅读您的操作系统文档,以确定这些级别的含义。 : - )
答案 2 :(得分:0)
操作系统有一个线程调度程序,它将(使用算法)根据优先级和一些其他因素来决定,接下来将运行哪个线程。如果你有一个多核系统,那么每个CPU都可以为它的帐户提供一个线程。
还有一个事实是一个线程获得了一个时间槽,然后被另一个线程切换出来并且必须再次轮到它。
但线程调度是一个操作系统功能。
我希望能为您提供问题的答案。
答案 3 :(得分:0)
值得注意的是,除非您是管理员,否则Windows会忽略提升的优先级,除非您是root用户,否则所有优先级都会被忽略。
通常,使用线程优先级并不是很有用。