国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 苏尼特左旗| 涞水县| 阳曲县| 沐川县| 隆回县| 雷波县| 土默特左旗| 金门县| 乌拉特后旗| 项城市| 拉萨市| 古浪县| 张家港市| 九龙坡区| 泗阳县| 二连浩特市| 宝丰县| 永城市| 乌苏市| 桐梓县| 内江市| 桐乡市| 浏阳市| 桓台县| 河间市| 昭通市| 扬中市| 深州市| 洪湖市| 晋江市| 鲁甸县| 武功县| 大同市| 北宁市| 辉县市| 河西区| 丹棱县| 榆树市| 揭西县| 兴隆县| 光泽县|