我對產量方法的需求和使用感到困惑。首先我的問題是,如果我們在runnablestate中有兩個不同優先級的線程,那麼jvm是否給予兩個線程以循環方式執行的同等機會,或者高優先級的線程將優先?編輯: - 假設OS是windows XP。Yield Method用於允許其他高優先級的線程?
現在讓我們來介紹一下線程類的方法。 Yield方法使當前正在執行的線程對象暫時暫停並允許其他線程(具有更高優先級或相同優先級)執行。
在http://oreilly.com/catalog/expjava/excerpt/index.html處給出的一篇文章中,如果在任何時候給出一個比當前線程更高優先級的線程變爲可運行的,它將搶佔較低優先級的線程並開始執行,這也是yield做/
所以看起來像從上面的語句產量是由jvm自動照顧。不確定什麼產量方法提供額外的在這裏?我所有的問題
感謝彼得偉大的回答。我對產量方法的理解是: - 產量的目的是爲了節省一個不太重要的線程/操作的CPU週期,以便它可以用於高優先級的進程。 –
理論上是的,但是它唯一有用的是,如果另一個線程等待在CPU中輪流(因爲沒有CPU空閒)。如果你不這樣做,另一個線程可能會在幾微秒內切換。 –