我對java中synchronized方法的理解,第一個線程獲取鎖對象,因此如果第二個線程檢查到它看到它正在使用並且「等待」,直到線程一完成,那麼鎖就會返回,而第二個線程可以獲得鎖並繼續。只要學習,如果這/關於簡化...這就是爲什麼。第二個線程如何檢查並重新檢查當前第一個線程使用的類的鎖定對象?
我的問題是第二個線程「等待」的內部機制是什麼......它是否繼續輪詢或重新檢查該鎖,直到它看到它的空閒狀態爲止?如果是這樣的話,這會影響一堆運行的線程而不是這個第一個/第二個例子嗎?或者它更像是一種註冊類型的機制,允許將第二個線程放入排序隊列中,然後在鎖定可用時通知它們?
只是好奇。謝謝!