Lock和synchronized的對比

2021-08-30 11:00:05 字數 529 閱讀 5650

1.1.synchronized 只能實現單執行緒的讀寫,一旦多個執行緒要同時訪問乙個資源,就只有乙個執行緒可以開啟訪問,其餘執行緒只能等待,非常影響效能。所以如果使用的話,一定要盡量減小鎖的粒度,到**快級。

1.2.synchronized 不需要手動釋放鎖,發生異常的時候會自動釋放;但是lock必須要自己手動釋放,如果沒有手動釋放的話,會導致死鎖,所以使用的時候必須有try finally

1.3.可以提高多執行緒的讀寫效率,讀讀共享,寫寫互斥,讀寫互斥。

1.4.lock 在鎖住的時候可以中斷鎖,但是如果是 synchronized的話 就必須要一直等待。

1.5.lock可以釋放特定的鎖,synchronized 不能。

1.6.lock是乙個介面、synchronized 是內建的語言實現,而且lock的源**進行鎖定的時候用的也是synchronized 關鍵字。

1.7.lock可以知道有沒有成功獲取到鎖,synchronized 無法辦到。

如果資源競爭不激烈,那麼兩者效能差不多,如果競爭非常激烈的話,lock效能要好很多。

Java執行緒同步問題synchronized

android usb 讀寫以前都是一讀一寫,但有些機器會出問題。就採用讀寫非同步的方法。使用物件鎖,object自帶的,然後使用object的方法wait和notify notifyall 使用方法簡單,記錄下 public synchronized int lra setregister int...

Lock介面和ReentrantLock類

lock l l.lock try finallylock 獲取鎖 unlock 釋放鎖 newcondition 返回乙個繫結到這個鎖物件例項的乙個condition例項 trylock 僅當鎖未被其他執行緒占有時才能獲取到並返回true,否則返回false lockinterruptibly 獲...

Java學習之執行緒鎖 synchronized

同步 併發 多個執行緒訪問同乙份資源 確保資源安全 執行緒安全 synchronized 同步 1 同步塊 synchronized 引用型別 this 類.class 2 同步方法 public synchronized void test public class testsyn class t...