欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中CyclicBarrier的用法分析

 更新時(shí)間:2013年03月13日 10:57:17   作者:  
CyclicBarrier和CountDownLatch一樣,都是關(guān)于線(xiàn)程的計(jì)數(shù)器。用法略有不同,測(cè)試代碼如下:

復(fù)制代碼 代碼如下:

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");
                 //線(xiàn)程在這里等待,直到所有線(xiàn)程都到達(dá)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() {
             //當(dāng)所有線(xiàn)程到達(dá)barrier時(shí)執(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初始化時(shí)規(guī)定一個(gè)數(shù)目,然后計(jì)算調(diào)用了CyclicBarrier.await()進(jìn)入等待的線(xiàn)程數(shù)。當(dāng)線(xiàn)程數(shù)達(dá)到了這個(gè)數(shù)目時(shí),所有進(jìn)入等待狀態(tài)的線(xiàn)程被喚醒并繼續(xù)。
2. CyclicBarrier就象它名字的意思一樣,可看成是個(gè)障礙, 所有的線(xiàn)程必須到齊后才能一起通過(guò)這個(gè)障礙。
3. CyclicBarrier初始時(shí)還可帶一個(gè)Runnable的參數(shù), 此Runnable任務(wù)在CyclicBarrier的數(shù)目達(dá)到后,所有其它線(xiàn)程被喚醒前被執(zhí)行。

相關(guān)文章

  • 面試JAVA時(shí),問(wèn)到spring該怎么回答

    面試JAVA時(shí),問(wèn)到spring該怎么回答

    這篇文章主要介紹了Spring面試資料,學(xué)Java的小伙伴都知道Spring是面試的必問(wèn)環(huán)節(jié),看完了一天就可掌握數(shù)據(jù)結(jié)構(gòu)和算法的面試題,快來(lái)看看吧
    2021-08-08
  • windows上nacos自啟動(dòng)的三種方法小結(jié)

    windows上nacos自啟動(dòng)的三種方法小結(jié)

    本文主要給大家介紹了windows上nacos自啟動(dòng)的三種方法,借助WinSW.exe添加到服務(wù)列表,修改nacos啟動(dòng)配置以及以開(kāi)機(jī)"啟動(dòng)"方式——啟動(dòng)Nacos的startup.cmd這三種方法,文中通過(guò)圖文講解的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 如何獲取java新IO的Path文件大小

    如何獲取java新IO的Path文件大小

    這篇文章主要介紹了如何獲取java新IO的Path文件大小,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • java JSP開(kāi)發(fā)之Spring中Bean的使用

    java JSP開(kāi)發(fā)之Spring中Bean的使用

    這篇文章主要介紹了java JSP開(kāi)發(fā)之Spring中Bean的使用的相關(guān)資料,在Spring中,bean的生命周期就比較復(fù)雜,這里就詳細(xì)介紹下,需要的朋友可以參考下
    2017-08-08
  • JAVA實(shí)現(xiàn)JSON后端向前端傳遞數(shù)據(jù)

    JAVA實(shí)現(xiàn)JSON后端向前端傳遞數(shù)據(jù)

    本篇文章主要介紹了JAVA實(shí)現(xiàn)JSON后端向前端傳遞數(shù)據(jù),這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,有需要的小伙伴可以參考下。
    2017-03-03
  • 關(guān)于線(xiàn)程池你不得不知道的一些設(shè)置

    關(guān)于線(xiàn)程池你不得不知道的一些設(shè)置

    這篇文章主要介紹了關(guān)于線(xiàn)程池你不得不知道的一些設(shè)置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring Boot web項(xiàng)目的TDD流程

    Spring Boot web項(xiàng)目的TDD流程

    TDD(Test-driven development) 測(cè)試驅(qū)動(dòng)開(kāi)發(fā),簡(jiǎn)單點(diǎn)說(shuō)就是編寫(xiě)測(cè)試,再編寫(xiě)代碼。這是首要一條,不可動(dòng)搖的一條,先寫(xiě)代碼后寫(xiě)測(cè)試的都是假TDD。
    2021-05-05
  • @JsonFormat?和?@DateTimeFormat?時(shí)間格式化注解(場(chǎng)景示例代碼)

    @JsonFormat?和?@DateTimeFormat?時(shí)間格式化注解(場(chǎng)景示例代碼)

    這篇文章主要介紹了@JsonFormat和@DateTimeFormat時(shí)間格式化注解,本文通過(guò)場(chǎng)景示例代碼詳解給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Spring Cloud Feign 自定義配置(重試、攔截與錯(cuò)誤碼處理) 代碼實(shí)踐

    Spring Cloud Feign 自定義配置(重試、攔截與錯(cuò)誤碼處理) 代碼實(shí)踐

    這篇文章主要介紹了Spring Cloud Feign 自定義配置(重試、攔截與錯(cuò)誤碼處理) 實(shí)踐,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java異常處理try?catch的基本使用

    Java異常處理try?catch的基本使用

    大家好,本篇文章主要講的是Java異常處理try?catch的基本使用,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02

最新評(píng)論