`

java CyclicBarrier用法

阅读更多
CyclicBarrier主要用于等待一组线程都执行到某个时刻。
它和CountDownLatch的区别:CountDownLatch用在等待某个事件,而CountDownLatch用于等待线程。
CountDownLatch用于一个或者多个线程等待其他一组线程。
CyclicBarrier用于一组线程之间的相互等待。
下面是一个例子:
public class CycleBarrierTest implements Runnable {
	private CyclicBarrier cyclicBarrier;

	public CycleBarrierTest(CyclicBarrier cyclicBarrier) {
		this.cyclicBarrier = cyclicBarrier;
	}

	@Override
	public void run() {
		System.out.println("准备执行任务");
		try {
			Thread.sleep(5000);
			System.out.println("执行任务完毕");
			cyclicBarrier.await();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("执行其他任务");
	}
	
	public static void main(String[] args) {
		CyclicBarrier barrier = new CyclicBarrier(3);
		for(int i=0;i<3;i++){
			CycleBarrierTest barrierTest = new CycleBarrierTest(barrier);
			Thread thread = new Thread(barrierTest);
			thread.start();
		}
	}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics