為什麼synchronized不夠用

2021-10-05 12:34:25 字數 432 閱讀 2962

效率低:鎖的釋放情況少,試圖獲得鎖時不能設定超時/不能中斷乙個正在試圖獲得鎖的執行緒

不夠靈活(讀寫鎖更靈活):加鎖和釋放的時機單一,每個鎖僅有單一的條件(某個物件),可能是不夠的

無法知道是否成功獲取到鎖

lock();

trylock();

trylock(long time,timeunit  unit);

locakinterruptibly();

優先考慮響應中斷,而不是響應鎖的普通獲取或重入獲取。

public void run()  catch (interruptedexception e) 

system.out.println(thread.currentthread().getname()+" interrupted.");

}});

為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?

from 本文是從 why why why why why are you a developer?這篇文章翻譯而來。做乙個程式設計師很忙,你需要去寫 去建立meme,去進行測試,以及隨時關注最新最熱的gem 開源軟體技術。最近,我一直在想讓自己的節奏慢下來,去做一些心裡一直想做但沒有去做的事,去思...

synchronized鎖住的是什麼?

物件鎖 同步方法鎖住的是物件 a.乙個物件 有多個synchronized方法 某一時刻內,只要有乙個執行緒去呼叫其中乙個synchronized 方法,其他的執行緒都要等待。b.乙個物件中 synchronized方法 非synchronized方法 某個執行緒訪問同步方法不影響其他執行緒訪問非同...

Synchronized 和 Lock有什麼區別

一 底層構成 synchronized是jvm的關鍵字,由monitorenter和monitorexit組成,由於wait和notify也依賴於monitorenter和monitorexit,所以 wait和notify必須在synchronized 裡面使用 lock是jdk提供的juc包下的...