1. 程式人生 > >Synchronized 實現原理

Synchronized 實現原理

Java的執行緒是對映到作業系統的原生執行緒之上的,如果要阻塞或喚醒一個執行緒,都需要作業系統來幫忙完成,這就需要從使用者態轉換到核心態中,因此狀態轉換需要耗費很多的處理器時間。

總結:synchronized 是通過作業系統底層的 互斥訊號量 實現的,由於會牽扯到使用者態和核心態的轉換,所以代價比較沉重。不過,虛擬機器也會進行鎖優化,如自旋鎖、輕量級鎖、偏向鎖等。