日期:2014-05-20  浏览次数:20719 次

java 线程设置优先级
java 线程设置优先级 的本质是什么?

------解决方案--------------------

线程的优先级代表该线程的重要程度,
当有多个线程同时处于可执行状态(就绪状态)哄抢CPU控制权时
优先级能够使得优先级高的线程有更大的机会获得 CPU 控制权,优先级低的线程机会要小
------解决方案--------------------
不要用优先级控制线程执行顺序。

这个优先级是OS依赖的。
WIN 只有 7个优先级,而SUN solaris的有32个(好像)

JAVA 里面定义了10级
所以不同系统上的JVM会把这10级映射到OS的等级上。

WIN因为10大于7 所以有些等级被映射到同一级。
而且WIN有独特的线程等级推送机制,
就是说不常执行的线程会慢慢自动提升优先级,以获得CPU执行。
(记忆中如此,可能有不确切的地方)

唯一能保证的是MAX 等级 一定高于 MIN 等级。

总之不要用就对了。