javaチュートリアルCyclicBarrierループフェンス

1.CyclicBarrierループフェンス

原理

CyclicBarrierは、文字通り、循環(循環)バリア(バリア)を意味します。スレッドのグループがバリア(同期ポイントとも呼ばれます)に到達すると、スレッドのグループをブロックする必要があります。最後のスレッドがバリアに到達するまでバリアは開かず、バリアによってインターセプトされたすべてのスレッドは引き続き機能します。スレッドは、CyclicBarrierのawait()メソッドを介してバリアに入ります。

コード

パッケージcom.atguigu.thread;

インポートjava.util.concurrent.BrokenBarrierException;

インポートjava.util.concurrent.CyclicBarrier;

/ **

*

* @Description:TODO(ここでは1文でこのクラスの役割を説明しています)

* @author xialei

*

* CyclicBarrier

*文字通り、Cyclicが使用できるバリアを意味します。それがしなければならないのは、

*スレッドのグループがバリア(同期ポイントとも呼ばれる)に達したときにブロックされるようにします。

*最後のスレッドがバリアに到達するまでバリアは開きません。

*バリアによってインターセプトされたスレッドは引き続き機能します。

*スレッドはCyclicBarrierのawait()メソッドを介してバリアに入ります。

*

*ドラゴンボールを7つ集めてドラゴンを召喚する

* /

パブリッククラスCyclicBarrierDemo

{{

private static final int NUMBER = 7;

public static void main(String [] args)

{{

// CyclicBarrier(int partys、RunnablebarrierAction)

CyclicBarrier CyclicBarrier = new CyclicBarrier(NUMBER、()-> {System.out.println( "***** 7つのドラゴンボールを集めてドラゴンを召喚する");});

for(int i = 1; i <= 7; i ++){

new Thread(()-> {

{を試してください

System.out.println(Thread.currentThread()。getName()+ "\ tスタードラゴンボールが収集されます");

CyclicBarrier.await();

} catch(InterruptedException | BrokenBarrierException e){

// TODO自動生成されたcatchブロック

e.printStackTrace();

}

}、String.valueOf(i))。start();

}

}

}

Javaトレーニング

おすすめ

転載: blog.csdn.net/msjhw_com/article/details/109215404