线程正常Vs最大优先级
这个问题在这里已经有了答案:
那是因为
Thread.sleep(1000);
如果您的更高优先级的线程处于睡眠模式,则任何其他线程都有机会执行它
删除此块并检查“鲍勃作业”先完成。
请参阅......系统中会有一个或多个处理器......现在,无论何时运行java程序,每个程序都将拥有自己的JVM实例。只要程序尝试做某件事,底层JVM就会使调用操作系统来实现它。JVM本身无法完成某些任务,只是将这些调用转发给操作系统。JVM无法控制所有内容......
说了这些,回到你的问题,你已经分别将线程优先级设置为5和10 .. JVM“不执行线程”。 线程由调度程序(OS)调度,然后执行。 JVM可以直接告诉操作系统该线程的优先级很高,但最终还是留给操作系统来决定应该给线程多少优先级。 对于操作系统,JVM只是另一个需要资源的进程。
提高优先级只会有助于
这种组合使得它们非常无用,不过是一种通常被忽略的暗示。 我会把它看作只是转储线程堆栈时可见的注释。
大多数情况下,使用不太繁忙的线程比CPU拥有更好的解决方案。
我对JVM的行为有点困惑
在许多情况下,像这样,JVM只是将参数传递给操作系统,让它执行它的工作。 JVM所做的唯一事情是在转储线程时打印优先级。
链接地址: http://www.djcxy.com/p/92055.html上一篇: Threads On Normal Vs Maximum Priority
下一篇: How to wait for all threads to finish, using ExecutorService?