【发布时间】:2011-01-20 16:02:30
【问题描述】:
我有疑问
有 10 个不同的线程处于可运行状态。每个线程的优先级为 1 到 10。CPU 如何调度或执行这些线程?
谢谢, 拉维
【问题讨论】:
标签: java multithreading core
我有疑问
有 10 个不同的线程处于可运行状态。每个线程的优先级为 1 到 10。CPU 如何调度或执行这些线程?
谢谢, 拉维
【问题讨论】:
标签: java multithreading core
这个地方什么时候取代了谷歌?
google搜索Java线程调度,第一个结果:
http://lass.cs.umass.edu/~shenoy/courses/fall01/labs/talab2.html
【讨论】:
主流 Java 实现使用“本机线程”,这意味着线程调度是通过操作系统完成的。 Java 线程优先级simply map to OS-specific values。不过,您应该阅读您的操作系统文档以了解这些级别的含义。 :-)
【讨论】:
操作系统有一个线程调度程序,它将(使用算法)根据优先级和其他一些因素决定接下来运行哪个线程。如果你有一个多核系统,那么每个 CPU 可以占用一个线程。
还有一个事实是,一个线程获得了一个时间槽,然后被切换到另一个线程,并且必须再次等待轮到它。
但是线程调度是操作系统的功能。
我希望这能给你一个问题的答案。
【讨论】:
值得注意的是,Windows 会忽略提升的优先级,除非您是管理员,而在 Linux 上,所有优先级都会被忽略,除非您是 root。
一般来说,玩线程优先级不是很有用。
【讨论】: