java多執行緒系列5 併發工具類

2021-09-17 18:17:08 字數 797 閱讀 4055

作用:一組執行緒等待其他執行緒執行完成後,再執行任務。類似join方法

呼叫await方法等待,countdown方法讓數量減一

作用:一組執行緒到達某個狀態後等待,知道執行緒組內最後乙個執行緒到達後,再繼續執行。

這裡有個方法額外說明下:public cyclicbarrier(int parties, runnable barrieraction) ,這個是執行緒都到達指定狀態後,執行引數內任務,這裡是從這組執行緒中選擇乙個去執行。

和countdownlatch的不同:

- cyclicbarrier可以重複使用,countdownlatch不行

- countdownlatch放行由第三者控制,cyclicbarrier放行由一組執行緒本身控制

- countdownlatch放行條件》=執行緒數,cyclicbarrier放行條件=執行緒數

訊號量,可以控制訪問資源的執行緒數,可用於流量控制。acquire() 獲取乙個許可,如果沒有就等待,而 release() 釋放乙個許可。

用於兩個執行緒交換資料,交換完資料後才繼續執行

futuretask 實現了runnable介面,內部包含乙個callable。

- isdone():任務結束,不管正常還是異常結束,或者是任務取消,都返回true

- iscancelled :任務完成前被取消,返回true

- cancel(boolean):任務還未開始,返回false。任務已經結束,返回false。任務正在執行,cancel(true)將會嘗試中斷正在執行的任務,返回true。cancel(false)不會中斷正在執行的任務,返回true。

多執行緒併發工具類

一 fork join 什麼是分而治之?規模為n的問題,n 閾值,直接解決,n 閾值,將n分解為k個小規模子問題,子問題互相對立,與原問題形式相同,將子問題的解合併得到原問題的解。fork join使用兩個類來完成以上兩件事情 forkjointask 我們要使用forkjoin框架,必須首先建立乙...

多執行緒併發工具類

countdownlatch,cyclicbarrier,semaphore,exchanger countdownlatch,用於乙個或多個執行緒等待其他執行緒完成操作。構造器中的計數值 count 實際上就是閉鎖需要等待的執行緒數量。這個值只能被設定一次,主線程在啟動其他執行緒後立即呼叫coun...

多執行緒 多執行緒之併發工具類

jdk 1.5 後,為我們提供的併發工具類有 名稱描述詳細 countdownlatch同步計數器 初始化時,傳入需要計數的執行緒等待數,並用 await 阻塞當前執行緒,其他執行緒中可以呼叫 countdown 方法讓計數器減一,當計數器為 0 時,則放行 cyclicbarrier柵欄 讓一組執...