天天看點

線程:CyclicBarrier同步工具類

  一個同步輔助類,它允許一組線程互相等待,直到到達某個公共屏障點。比如公司組織活動出去玩,需要在公司門口一起搭車去。每個人從家裡出發去公司門口,到達的時間肯定先後不一樣,是以公司的車要一直等待,等所有人到齊後,才開車出發。cyclicbarrier就類似這樣的功能,當所有線程到達"屏蔽點"的時候,才往下走。

線程:CyclicBarrier同步工具類

具體等待多少根線程到達,可以在構造方法裡指定<code>(int parties)。</code>

當你的parties設為3的時候,假設隻有2根線程到達此處,那程式會一直在此等待。可以設定timeout,當到達時間時,會抛出<code>異常;當有4根線程的時候,隻要任意3根到達屏蔽點,就會繼續往下執行。</code>

示例代碼:

輸出結果:

線程:CyclicBarrier同步工具類