線程的調度與時間片


由於現在操作系統擁有強大的線程管理能力,Java不需要再進行獨立的線程管理和調度, JVM徹底將線程調度委托給操作系統

 

操作系統主流的線程調度方式: 基於CPU時間片

不同操作系統,不同CPU,線程的時間片是不一樣的

CPU性能中的 GHz是什么單位?

  1GHz即十億赫茲, CPU的GHz指每秒多少GHz, 赫茲指交流電或電磁波頻率的一個單位, 這里可以說2GHz的CPU具有每秒處理20億電信號

假設時間片長度20ms, 在一個2GHz的CPU上, 那么其時間片的計算量:  (20/1000)*20=4000萬次

一個時間片內的計算量是非常巨大的

 

線程只有得到時間片才能執行,沒有得到時間片就處於就緒狀態,等待系統分配時間片

線程的調度模型分為兩種: 分時調度搶占式調度

  分時調度: 輪流占有CPU,給線程平均分配時間片

  搶占式調度: 按線程的優先級分配時間片,如果優先級相同,會隨機選擇一個

        

 

目前大部分操作系統都是使用搶占式調度, Java的線程委托給操作系統完成

 

unix : 分時調度.

linux: 將優先級調度, 時間片輪轉法調度,先進先出調度綜合起來應用. 不同進程的調度策略是不一樣的

windows: 搶占式調度

Linux, Windows和UNIX的進程調度分析

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM