JUC 執行緒通訊

2021-10-03 15:36:30 字數 1185 閱讀 4663

面試題:兩個執行緒,乙個執行緒列印1-52,另乙個列印字母a-z列印順序為12a34b…5152z

多執行緒程式設計模板:

執行緒虛假喚醒問題:

上述問題的解決方式:jdk中已經給出了 這也就是面試題中使用while進行判斷的原因

juc中新的方法實現執行緒通訊:

condition物件的獲取: 通過lock進行獲取

lock lock =

newreentrantlock()

; condition condition = lock.

newcondition()

;

上述案例改造:

class

testthreaddemo3

system.out.

println

(thread.

currentthread()

.getname()

+"\t"

+number)

;

number ++

;// 實現精準通知

condition2.

signalall()

; lock.

unlock()

;}public

void

decrease()

throws interruptedexception

system.out.

println

(thread.

currentthread()

.getname()

+"\t"

+number)

; number --

; condition.

signalall()

; lock.

unlock();}}

JUC 執行緒間定製化通訊

三個執行緒啟動,要求 需要執行緒按照這就涉及到訊號量 多執行緒按循序呼叫,實現a b c 三個執行緒啟動,要求 aa答應5次,bb答應10次,cc列印15次 接著 aa答應5次,bb答應10次,cc列印15次 就這樣重複10輪 author lrc date 9 37 上午 2020 7 4 cla...

j u c執行緒 執行緒池

final void runworker worker w catch runtimeexception x catch error x catch throwable x finally finally completedabruptly false finally private runnabl...

JUC 多執行緒(2 執行緒間的通訊)學習筆記

3.多執行緒模板 3 4.執行緒通訊中 synchronized 與 lock 5.執行緒間定製化呼叫通訊 精準喚醒 生產者 消費者 通知等待喚醒機制 1.判斷 判斷有無產品 2.幹活 如果沒有產品,則先生成 如果已有產品,則先消費 3.通知 通知對方我已經幹完了,該你了 public class ...