java 多執行緒知識點總結2

2021-09-24 23:41:54 字數 563 閱讀 3149

4 synchronized的優化

鎖粗化與鎖消除

死鎖:公平鎖:等待時間最長的先獲取鎖(synchronized是非公平鎖,reentrantlock預設也為非公平鎖,但可以實現公平鎖)

同步佇列:所有獲取鎖失敗的執行緒進入同步佇列排隊獲取鎖。

等待佇列:呼叫wait()的執行緒置入等待佇列,等待notify喚醒後放入同步佇列的隊尾。

5 lock體系

lock的使用格式

try()catch(execption e)finally

lock中的重要方法

響應中斷

2.1 void lockinterruptibly() throws interruptedexecption;

非阻塞式獲取鎖,若獲取鎖失敗,執行緒繼續執行,不再阻塞。破壞占有且等待。

2.2 boolean trylock();

支援超時,獲取鎖失敗的執行緒等待一段時間還未獲取到鎖,執行緒繼續進行。

2.3 boolean trylock(long time,timeunit unit) throws interruptedexecption;

java併發 多執行緒知識點總結

1 web庫類 sevlet天生有多執行緒性。2 定義任務 使用runnable介面並實現run 方法。而將runnable 不返回任何值 物件程式設計工作任務的方式為 thread t new thread new task t.start 這裡start 會迅速返回,因為每個任務都由不同的執行緒...

多執行緒知識點總結

多執行緒的問題主要圍繞3個問題處理 1.原子性,2.可見性,3.有序性 1.原子性,不可被其他執行緒打斷的操作。如read.write sychronized 2.可見性 一條執行緒修改了某值,新值對其他執行緒立即可知 普通變數是通過主記憶體完成多執行緒的共享,因此在多執行緒的情況下,很多髒資料。v...

多執行緒 知識點總結二

1.sleep 和wait 方法的區別?sleep 必須指時間 不釋放鎖。wait 可以不指定時間,也可以指定時間 釋放鎖。2.為什麼wait notify notifyall 等方法都定義在object類中?wait 等待,notify 喚醒單個執行緒,notifyall 喚醒所有的執行緒 這些方...