CountDownLatch 處理多執行緒問題

2021-10-03 18:59:36 字數 650 閱讀 6063

多執行緒問題記錄(自己的理解)

// 主線程及 待處理的資料

list

users = 業務處理後形成的集合

// countdownlatch 用來處理多執行緒等待問題,如 主線程 -> 多執行緒 -> 等待多執行緒全部執行完成 -> 主線程

// 初始化計數器

countdownlatch downlatch =

newcountdownlatch

(users.

size()

);// 開啟多執行緒任務

users.

foreach

(user -

>

catch

(exception e)

finally}}

).start()

;});

// 如果計數器不為零就等待

downlatch.

await()

;// 執行緒內部做集合修改的話用做執行緒安全,不然可能產生錯誤

list

users= collections.

synchronizedlist

(new

arraylist

<

>()

);

多執行緒 CountDownLatch

countdownlatch 允許乙個或多個執行緒等待其他執行緒完成操作。應用場景 假如有這樣乙個需求,當我們需要解析乙個excel裡多個sheet的資料時,可以考慮使用多執行緒,每個執行緒解析乙個sheet裡的資料,等到所有的sheet都解析完之後,程式需要提示解析完成。在這個需求中,要實現主線程...

執行緒同步 CountDownLatch

應用場景 有乙個任務想要往下執行,但必須要等到其他的任務執行完畢後才可以繼續往下執行。假如我們這個想要繼續往下執行的任務呼叫乙個countdownlatch物件的await 方法,其他的任務執行完自己的任務後呼叫同乙個countdownlatch物件上的countdown 方法,這個呼叫await ...

CountDownLatch 併發測試

countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public voidcountdown public voidawait throws interrup...