Windows与Unix系统下Java多线程上下文切换差异咨询
同优先级Java线程的上下文切换差异
我最近在读《The Complete Reference Java Ninth Edition》这本书时,get到了关于Java线程上下文切换的关键细节,尤其是同优先级线程竞争CPU周期的情况,特意整理出来:
当两个相同优先级的线程竞争CPU周期时,情况会略显复杂。
不同操作系统的调度逻辑有明显区别:
- 像Windows这类操作系统,同优先级线程会自动以**round-robin(轮转)方式进行时间分片(time-sliced)**调度,系统会主动完成线程切换,不需要线程主动干预。
- 而在Unix这类操作系统中,同优先级线程不会自动触发上下文切换,必须由线程主动调用
yield()方法让出CPU,其他同优先级线程才有机会获得执行权。
内容的提问来源于stack exchange,提问作者Shailesh Pratapwar
相关产品推荐
相关产品推荐

