国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中CyclicBarrier的用法分析

2019-11-26 16:14:09
字體:
供稿:網(wǎng)友

復制代碼 代碼如下:

public class TestCyclicBarrier {

     private static final int THREAD_NUM = 5;

     public static class WorkerThread implements Runnable{

         CyclicBarrier barrier;

         public WorkerThread(CyclicBarrier b){
             this.barrier = b;
         }

         @Override
         public void run() {
             // TODO Auto-generated method stub
             try{
                 System.out.println("Worker's waiting");
                 //線程在這里等待,直到所有線程都到達barrier。
                 barrier.await();
                 System.out.println("ID:"+Thread.currentThread().getId()+" Working");
             }catch(Exception e){
                 e.printStackTrace();
             }
         }

     }

     /**
      * @param args
      */
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         CyclicBarrier cb = new CyclicBarrier(THREAD_NUM, new Runnable() {
             //當所有線程到達barrier時執(zhí)行
             @Override
             public void run() {
                 // TODO Auto-generated method stub
                 System.out.println("Inside Barrier");

             }
         });

         for(int i=0;i<THREAD_NUM;i++){
             new Thread(new WorkerThread(cb)).start();
         }
     }

 }
 /*
 以下是輸出:
 Worker's waiting
 Worker's waiting
 Worker's waiting
 Worker's waiting
 Worker's waiting
 Inside Barrier
 ID:12 Working
 ID:8 Working
 ID:11 Working
 ID:9 Working
 ID:10 Working
 */

1. CyclicBarrier初始化時規(guī)定一個數(shù)目,然后計算調(diào)用了CyclicBarrier.await()進入等待的線程數(shù)。當線程數(shù)達到了這個數(shù)目時,所有進入等待狀態(tài)的線程被喚醒并繼續(xù)。
2. CyclicBarrier就象它名字的意思一樣,可看成是個障礙, 所有的線程必須到齊后才能一起通過這個障礙。
3. CyclicBarrier初始時還可帶一個Runnable的參數(shù), 此Runnable任務(wù)在CyclicBarrier的數(shù)目達到后,所有其它線程被喚醒前被執(zhí)行。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泰和县| 揭阳市| 泽库县| 江孜县| 瑞金市| 鹤壁市| 镇宁| 通山县| 德江县| 防城港市| 隆尧县| 灯塔市| 南昌县| 太康县| 垦利县| 庐江县| 苏尼特左旗| 通辽市| 武乡县| 博湖县| 昌宁县| 抚宁县| 繁昌县| 金阳县| 高雄市| 霍邱县| 社旗县| 内江市| 会东县| 铜鼓县| 如皋市| 调兵山市| 多伦县| 康乐县| 长白| 钟祥市| 楚雄市| 永寿县| 曲松县| 青河县| 晋宁县|