小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JDK1.5新特性--java.util.concurrent CountDownLa...

 goldbomb 2008-01-13

名字可以看出,CountDownLatch是一個倒數(shù)計數(shù)的鎖,當(dāng)?shù)箶?shù)到0時觸發(fā)事件,也就是開鎖,其他人就可以進入了。在一些應(yīng)用場合中,需要等待某個條件達(dá)到要求后才能做后面的事情;同時當(dāng)線程都完成后也會觸發(fā)事件,以便進行后面的操作。

CountDownLatch最重要的方法是countDown()和await(),前者主要是倒數(shù)一次,后者是等待倒數(shù)到0,如果沒有到達(dá)0,就只有阻塞等待了。

一個CountDouwnLatch實例是不能重復(fù)使用的,也就是說它是一次性的,鎖一經(jīng)被打開就不能再關(guān)閉使用了,如果想重復(fù)使用,請考慮使用CyclicBarrier

下面的例子簡單的說明了CountDownLatch的使用方法,模擬了100米賽跑,10名選手已經(jīng)準(zhǔn)備就緒,只等裁判一聲令下。當(dāng)所有人都到達(dá)終點時,比賽結(jié)束。

同樣,線程池需要顯式shutdown。

package concurrent;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TestCountDownLatch {
  public static void main(String[] argsthrows InterruptedException {
    // 開始的倒數(shù)鎖
    final CountDownLatch begin = new CountDownLatch(1);
    // 結(jié)束的倒數(shù)鎖
    final CountDownLatch end = new CountDownLatch(10);
    // 十名選手
    final ExecutorService exec = Executors.newFixedThreadPool(10);
    for(int index = 0; index < 10; index++) {
      final int NO = index + 1;
      Runnable run = new Runnable(){
        public void run() {
          try {
            begin.await();
            Thread.sleep((long) (Math.random() 10000));
            System.out.println("No." + NO + " arrived");
          catch (InterruptedException e) {
          finally {
            end.countDown();
          }
        }
      };
      exec.submit(run);
    }
    System.out.println("Game Start");
    begin.countDown();
    end.await();
    System.out.println("Game Over");
    exec.shutdown();
  }
}

運行結(jié)果:
Game Start
No.4 arrived
No.1 arrived
No.7 arrived
No.9 arrived
No.3 arrived
No.2 arrived
No.8 arrived
No.10 arrived
No.6 arrived
No.5 arrived
Game Over

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多