您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關java中線程調度指的是什么的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
在java中,以某種順序在單個CPU上執行多個線程稱為調度;它是多線程的核心,擁有一個好的線程調度,可以很好(充分)的發揮系統性能,高效的利用CPU資源,提高程序的執行效率。
通常,具有最高優先級的可運行線程會最先運行,處于活動狀態(正在運行);如果有高優先級線程被喚醒,并且正在運行低優先級的線程,那么高優先級線程會立即運行。
調度類型
1、等待和通知
等待[wait()]和通知[notify(),notifyAll()]提供了在同一對象上同步的線程之間進行通信的方式。
說明:
wait()方法:當在一個對象上調用wait()方法時,執行該代碼的線程立即放棄對該對象的鎖定并將該線程移動到等待狀態。
notify()方法:這會喚醒在同一對象上調用wait()的線程,并將線程移動到就緒狀態。
notifyAll()方法:這會喚醒在同一個對象上調用wait()的所有線程。
2、運行和讓步
Yield()方法用于為具有相同優先級的其他線程提供執行機會,即讓當前運行的線程移動到可運行狀態。
3、睡眠和啟用
nSleep()方法用于暫停線程一段指定的時間,即將當前運行的線程移動到Sleep狀態一段指定的時間,然后再將其移動到runnable狀態。例:
Thread.sleep(毫秒數);
線程優先級
每個線程都有一個優先級,優先級由1到10之間的整數數字表示,數字越高,優先級越高,線程優先級默認為5。在大多數情況下,線程調度程序根據線程的優先級(稱為搶占式調度)來調度線程。
創建一個Java線程時,它會從創建它的線程中繼承其優先級;我們也可以使用setPriority方法在創建線程后隨時修改線程的優先級。
感謝各位的閱讀!關于java中線程調度指的是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。