2012-11-17 28 views
3

如果兩個線程嘗試訪問同步方法的精確毫秒或(無論最小CPU單元)是什麼會發生什麼?如果JVM/System具有相同的優先級,它將如何解決此問題。它會造成僵局嗎?此外,在哪裏存儲有關鎖的信息?在完全相同的毫秒內的兩個java線程

回答

5

這就是線程的要點。操作系統的作業調度程序將允許一個在另一個之前。不會發生死鎖。

實際上,作業調度程序是用於重量級分叉的過程。 JVM處理哪個Thread輪到執行或輸入同步塊。

+0

謝謝傑夫。這很有幫助。 – user1832435

2

輸入​​塊被內部翻譯爲在操作系統中獲取一些原子互斥量或信號量。這些結構保證是原子的。因此沒有錯誤會發生,一種方法總是第一個。即使在多核多CPU機器中,也只有一個線程可以一次獲得信號量/互斥量。

如果肯定不會造成死鎖。要創建死鎖,您需要兩個資源才能競爭。

相關問題