2016-01-15 55 views
-1

我試圖更好地理解使用與互斥鎖有關的睡眠函數調用。如果一個線程持有一個互斥體,而另一個線程的睡眠過期,控制權是否會立即返回到第一個線程,或者線程是否必須至少等待被保持的互斥體被釋放,然後再切換回另一個線程?睡眠函數調用與互斥鎖有關

+0

它被標記爲'java'和'C++'。細節會有所不同。你想知道兩者,還是隻有一個? –

+0

在java中,睡眠與互斥鎖無關。這是一種類似於任何其他方法的方法,也許你想說一些類似於此方法的方法 –

+0

@ ErickG.Hagstrom是的,我確實想知道關於這兩者的所有方面, – SilentPinnacle

回答

3

Thread.sleep()與任何類型的鎖之間沒有關係。

在至少nnn毫秒(除非它引發InterruptedException)之後返回調用Thread.sleep(nnn),這就是開發人員需要知道的全部內容。

幾乎所有您需要了解的互斥鎖(例如,​​塊)都是隻有一個線程可以在同一時間鎖定相同的實例。所有者解鎖後,鎖定的互斥鎖即可用於等待線程。它與任何線程是否正在或正在調用sleep()無關。

+0

和(除了函數名稱和不存在的'同步「塊),這同樣適用於C++。 –