zoukankan      html  css  js  c++  java
  • CyclicBarrier

     /**
    * CyclicBarrier 线程计数器
    *
    */
    1
    import java.util.concurrent.BrokenBarrierException; 2 import java.util.concurrent.CyclicBarrier; 3 4 public class CyclicBarrierTest { 5 private static final int THREAD_COUNT = 10; 6 7 public static CyclicBarrier barrier = new CyclicBarrier(THREAD_COUNT); 8 9 public static void main(String[] args) { 10 for(int i = 0; i<THREAD_COUNT; i++){ 11 new Thread(new WorkThread(barrier)).start(); 12 } 13 } 14 15 } 16 17 class WorkThread implements Runnable{ 18 private CyclicBarrier barrier; 19 20 public WorkThread(CyclicBarrier barrier){ 21 this.barrier = barrier; 22 } 23 24 @Override 25 public void run() { 26 try { 27 System.out.println(Thread.currentThread().getName() + "working before await()"); 28 barrier.await();//线程在此等待,直到所有线程到达。。。才开始往下执行 29 System.out.println(Thread.currentThread().getName() + "working after await()"); 30 } catch (InterruptedException e) { 31 e.printStackTrace(); 32 } catch (BrokenBarrierException e) { 33 e.printStackTrace(); 34 } 35 } 36 }

    结果

    Thread-0working before await()
    Thread-1working before await()
    Thread-3working before await()
    Thread-2working before await()
    Thread-5working before await()
    Thread-4working before await()
    Thread-7working before await()
    Thread-9working before await()
    Thread-6working before await()
    Thread-8working before await()


    Thread-0working after await()
    Thread-8working after await()
    Thread-1working after await()
    Thread-3working after await()
    Thread-2working after await()
    Thread-5working after await()
    Thread-4working after await()
    Thread-9working after await()
    Thread-6working after await()
    Thread-7working after await()

     从上面的结果,可以知道:

     CyclicBarrier barrier = new CyclicBarrier(THREAD_COUNT); 当调用barrier.await()方法时,当所有线程到达时,才会开始执行后面的代码。这个类很有用,平时自己做一些测试例子是比较常用的
  • 相关阅读:
    通用后台管理系统(5)编写角色接口、实现、控制器、
    通用后台管理系统(1)数据库设计
    通用后台管理系统(4)编写权限接口、实现、控制器、
    php中 curl, fsockopen ,file_get_contents 三个函数
    2012年中国薪水最高的25家科技公司
    Things for Mac 教程
    php读取xml的方法
    【转】jQuery 性能
    php弹出对话框
    Mac之关机、睡眠、一直开机的利与弊
  • 原文地址:https://www.cnblogs.com/chenmo-xpw/p/3938454.html
Copyright © 2011-2022 走看看