本文主要是介绍java并发编程之CyclicBarrier(循环栅栏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package com.zhong;import java.util.concurrent.CyclicBarrier;/*** Cyclic意思是循环,Barrier意思是屏障,那么CyclicBarrier翻译过来就是循环栅栏。* 它是一个同步辅助类,能让一组线程互相等待,* 直到这一组线程都到了一个公共屏障点,各线程才能继续向下执行。因为该屏障能够在释放等待线程后继续重用,所以叫循环屏障。* @author admin**/
public class CyclicBarrierTest {private static final int THREAD_NUM = 5;public static class WorkerThread implements Runnable {CyclicBarrier barrier;public WorkerThread(CyclicBarrier b) {this.barrier = b;}@Overridepublic void run() {try {System.out.println("Worker's waiting");// 线程在这里等待,直到所有线程都到达barrier。barrier.await();System.out.println("ID:" + Thread.currentThread().getId() + " Working");} catch (Exception e) {e.printStackTrace();}}}public static void main(String[] args) {CyclicBarrier cb = new CyclicBarrier(THREAD_NUM, new Runnable() {// 当所有线程到达barrier时执行@Overridepublic void run() {System.out.println("Inside Barrier");}});for (int i = 0; i < 20; i++) {new Thread(new WorkerThread(cb)).start();}}
}
这篇关于java并发编程之CyclicBarrier(循环栅栏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!