閉鎖 CountDownLatch 原始碼

2021-08-27 16:41:09 字數 409 閱讀 5806

成員sync

所含方法: await(),await(long, timeunit),countdown,getcount

內部靜態類sync extends abstractqueuedsynchronizer

1、兩個公開方法,await和countdown,不存在獲取資源的操作,在初始化的時候已經設定state。tryacquireshared只是做檢查操作,如果等於0,就返回1(表示獲取成功)

countdown做releaseshared操作,一直release到state等於0,就會喚醒aqs裡面的第乙個node,該node獲取資源又成功(因為

tryacquireshared裡面不更新state,只檢查

),呼叫setheadandpropagate進行喚醒的傳播,直到所有node全部醒完。

java 多執行緒 CountDownLatch用法

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

java多執行緒CountDownLatch用法

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

執行緒同步工具之CountDownLatch

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