2011-08-28 31 views

回答

4

如果類A被具有由 「同步」關鍵字標記過的公共靜態方法,則有可能以具有類 水平鎖?

是的,將是對A級

類級鎖當存在這樣一類鎖,才能實例化類的對象,也沒有任何與實例化?

當靜態方法存在鎖定時,它只會影響其他同步的靜態方法。您仍然可以創建該類的新實例。

3

是的,該鎖將保留在Class對象上。

Locks In Synchronized Methods

你可能不知道,因爲靜態方法與一類,而不是一個對象關聯時被調用靜態同步方法會發生什麼,引用。在這種情況下,線程獲取與該類關聯的Class對象的內部鎖。因此,對類的靜態字段的訪問由與該類的任何實例的鎖截然不同的鎖來控制。

2

所有其他線程試圖執行同一個類的另一個靜態同步方法,或者在此實例上同步的任何其他方法將被阻止。

相關問題