JAva-マルチスレッド-CyclicBarrier(ループフェンス)
4333 ワード
CyclicBarrier barrier = new CyclicBarrier(8);
//
public class ThreadMarch implements Runnable{
//
private String name;
//
private CyclicBarrier barrier;
public ThreadMarch(String name, CyclicBarrier barrier) {
this.name = name;
this.barrier = barrier;
}
@Override
public void run() {
try {
System.out.println(this.name+" 。。。");
Thread.sleep(2000);
System.out.println(this.name+" !");
// ;await() , ,
barrier.await();
// ,
System.out.println(this.name+" !");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//
ExecutorService executor = Executors.newFixedThreadPool(12);
// 10 ,barrier 10
CyclicBarrier barrier = new CyclicBarrier(10);
try {
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
executor.execute(new ThreadMarch(" ",barrier));
} catch (Exception e) {
e.printStackTrace();
} finally {
executor.shutdown();
}
}
:
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
public class ThreadMarch implements Runnable{
//
private String name;
//
private CyclicBarrier barrier;
public ThreadMarch(String name, CyclicBarrier barrier) {
this.name = name;
this.barrier = barrier;
}
@Override
public void run() {
try {
System.out.println(this.name+" 。。。");
Thread.sleep(2000);
System.out.println(this.name+" !");
// ;await() , ,
// barrier.await();
// ,
System.out.println(this.name+" !");
} catch (InterruptedException e) {
e.printStackTrace();
// } catch (BrokenBarrierException e) {
// e.printStackTrace();
}
}
}
:
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
。。。
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!