1. 程式人生 > >Java Thread系列(五)synchronized

Java Thread系列(五)synchronized

執行 java 釋放 lock java t 操作 bject 線程 出現

Java Thread系列(五)synchronized

synchronized鎖重入

關鍵字 synchronized 擁有鎖重入的功能,也就是在使用 synchronized 時,當線程等到一個對象的鎖後,再次請求此對象時可以再次得到該對象的鎖。出現異常時釋放鎖。

synchronized異常

synchronized代碼塊

使用 synchronized 聲明的方法在某些情況下是有弊端的,比如A線程調用同步的方法執行一個很長時間的任務,那麽B線程就必須等待比較長的時間才能執行,這樣的情況下可以使用 synchronized 代碼塊去優化代碼執行時間,也就是通常所說的減小鎖的粒度。

synchronized代碼塊案例 【com.herolei._1_2sync.ObjectLock】

synchronized對常量加鎖的問題 【com.herolei._1_2sync.StringLock】

註意:鎖對象發生改變問題,當使用一個對象進行加鎖的操作,要註意對象本身發生改變的時候,那麽持有的鎖就不同。


每天用心記錄一點點。內容也許不重要,但習慣很重要!

Java Thread系列(五)synchronized