的Thread.yield()
靜態(爪哇)方法會導致當前執行的線程對象臨時暫停,並允許其他線程執行。Thread.yield()是一個超線程CPU
如果多個線程正在執行(在具有超線程功能的CPU中),哪個線程將暫停?
的Thread.yield()
靜態(爪哇)方法會導致當前執行的線程對象臨時暫停,並允許其他線程執行。Thread.yield()是一個超線程CPU
如果多個線程正在執行(在具有超線程功能的CPU中),哪個線程將暫停?
調用Thread.yield
的一個...
你似乎有一個關於HT誤解,HT是由硬件來處理,但需要一個線程被操作系統調度。如果一個線程產生CPU,它立即停止它的時間片,操作系統會在它的位置放置一個新的線程(或空閒進程)。另一個線程將繼續正常。
從Java的角度來看,超線程CPU上的線程是不是在不同內核上運行的線程有質的不同。 (他們只是更慢......)
但是,你可能誤解yield
做什麼。它不保證暫停當前線程。相反,它只是線程調度程序現在運行不同線程的暗示。
如果沒有其他可運行的線程,則調度程序將立即繼續,只是產生的線程。
調度程序可能決定忽略該提示。
如果你想/需要當前線程真的暫停,通話sleep
或阻塞等待某一事件的發生。