1. 程式人生 > >Java多執行緒-併發之synchronized 關鍵字

Java多執行緒-併發之synchronized 關鍵字

synchronized 關鍵字

答:

底層實現:

  1. 進入時,執行 monitorenter,將計數器 +1,釋放鎖 monitorexit 時,計數器 -1
  2. 當一個執行緒判斷到計數器為 0 時,則當前鎖空閒,可以佔用;反之,當前執行緒進入等待狀態

含義:(monitor 機制)

Synchronized 是在加鎖,加物件鎖。物件鎖是一種重量鎖(monitor), synchronized 的鎖機制會根據執行緒競爭情況再執行時會有偏向鎖(單一執行緒)、輕量鎖(多個執行緒訪問 synchronized 區域)、物件鎖(重量鎖,多個執行緒存在競爭的情況)、自旋鎖等。
該關鍵字是一個幾種鎖的封裝。