“你好,阿米戈!今天我們要上一堂簡短但有趣的課。我要告訴你關於yield 的知識,Thread 類的一個靜態方法。”

Ellie 已經告訴過您,處理器不斷地在線程之間切換。每個線程都分配了一小段處理器時間,稱為quantum。當這個時間到期時,處理器切換到另一個線程並開始執行它的命令。調用Thread.yield()可讓您提前結束當前線程的量程。換句話說,它告訴處理器切換到下一個線程。

“但是為什麼一個線程需要將它的時間讓給另一個線程呢?”

“這種情況並不經常發生。調用yield意味著 «我們的線程提前完成了它的輪次» 並且yield之後的命令將以完整的時間片開始。因此,它被中斷的可能性較小。特別是如果它是一個簡短的命令,即執行時間不會很長。這種方法可以用來優化一些流程。”

我還可以告訴您Thread.sleep(0)實際上以相同的方式工作。我認為您一開始不會經常使用yield方法,但了解它很有用。