JDK並發包之CyclicBarrier

2021-08-21 22:20:38 字數 760 閱讀 2926

cyclicbarrier也是一種計數器,其實可以反覆使用的,比如說,將計數器設定為10,那麼湊齊第一批10個執行緒後,計數器就會清零,然後可以接著湊齊下一批10個執行緒。cyclicbarrier是比countdownlatch更加強大的,cyclicbarrier可以接收乙個引數作為barrieraction。所謂的barrieraction就是當計數器一次計數完畢後,會執行的動作。

cyclicbarrier的建構函式:public cyclicbarrier(int parties, runnable barrieraction);

cyclicbarrier的主要方法:

await()方法,呼叫該方法的執行緒進入等待狀態,當湊齊計數器的個數後,這些執行緒才會開始執行。當計數器清零後,再呼叫該方法就表示再次開始計數。

應用示例:

public class cyclicbarrierdemo

exe.shutdown();

} static class work implements runnable

public void run() catch (interruptedexception e) catch (brokenbarrierexception e)

} }static class action implements runnable

}}

實戰Java高併發程式設計(三)JDK並發包

同步控制 重入鎖 重入鎖可以完全替代synchronized關鍵字。其使用方法如下 public reentrantlock lock new reentrantlock public void run finally 由於其通過人工進行lock和unlock,因此比synchronized更好控制...

JDK1 5並發包學習筆記(3)

總結 1.寫乙個方法實現callable介面 2.生成executorservice es executors.newfixedthreadpool 3 3.執行該執行緒 future f es.submit c1 c1即為實現callablel類的例項 第二項 queue jdk5.0新增的con...

java並發包之ConcurrentHashMap

1.hashentry類static final class hashentry 2.segment類static final class segmentextends reentrantlock implements serializable 設定 table 引用到這個新生成的 hashentr...