真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于java中CyclicBarrier-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗的網(wǎng)站設(shè)計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負(fù)責(zé)網(wǎng)站視覺設(shè)計、用戶體驗優(yōu)化、交互設(shè)計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站制作、成都做網(wǎng)站易于使用并且具有良好的響應(yīng)性。

這篇文章將為大家詳細(xì)講解有關(guān)關(guān)于java中CyclicBarrier,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1.CyclicBarrier簡介

CyclicBarrier 的字面意思是可循環(huán)使用(Cyclic)的屏障(Barrier)。它要做的事情是,讓一組線程到達一個屏障(也可以叫同步點)時被阻塞,直到最后一個線程到達屏障時,屏障才會開門,所有被屏障攔截的線程才會繼續(xù)干活。 在JDK中對CyclicBarrier是這樣說的“允許一組線程全部等待彼此到達公共屏障點的同步輔助。 循環(huán)障礙在涉及必須偶爾彼此等待的固定大小的線程程序中是有用的。屏障稱為循環(huán) ,因為它可以在等待線程釋放后重新使用”。CountDownLatch的計數(shù)器無法被重置;CyclicBarrier的計數(shù)器可以被重置后使用,因此它被稱為是循環(huán)的barrier。

我們先來看一下他的構(gòu)造方法和使用方式:

構(gòu)造函數(shù):
    CyclicBarrier(int parties) //其參數(shù)表示屏障攔截的線程數(shù)量,每個線程調(diào)用await方法告
                                 訴CyclicBarrier我已經(jīng)到達了屏障,然后當(dāng)前線程被阻塞。

    CyclicBarrier (int parties, Runnable barrierAction) //創(chuàng)建一個新的CyclicBarrier ,
                                當(dāng)給定數(shù)量的參與者(線程)等待它時,它將跳閘,當(dāng)障礙跳閘時,它
                                將執(zhí)行 給定的障礙動作(Runnable參數(shù)提供),由最后一個線程進入障礙。


    方法:
    int await()   //在所有參與者都已經(jīng)在此 barrier 上調(diào)用 await 方法之前,將一直等待。
                  方法之前將一直等待,或者超出了指定的等待時間。
    int getNumberWaiting()  //返回當(dāng)前在屏障處等待的參與者數(shù)目。
    int getParties()        //返回要求啟動此 barrier 的參與者數(shù)目。
    boolean isBroken()      //查詢此屏障是否處于損壞狀態(tài)。
    void reset()            //將屏障重置為其初始狀態(tài)。

下面我們來看一個小程序了解一下CyclicBarrier的使用方式:

public class CyclicBarrierTest {
  static CyclicBarrier c = new CyclicBarrier(2);
  public static void main(String[] args) {
    new Thread(new Runnable() {
      @Override
      public void run() {
        try {
          c.await();
        } catch (Exception e) {

        }
        System.out.println(Thread.currentThread().getName()+"正在等待...");
      }
    }).start();

    try {
      c.await();
    } catch (Exception e) {

    }
    System.out.println(Thread.currentThread().getName()+"正在等待...");
    System.out.println("人夠了,出發(fā)吧 當(dāng)前有 "+c.getParties()+" 個人參與比賽");
  }
}

新聞標(biāo)題:關(guān)于java中CyclicBarrier-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/iogop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部