マルチスレッド同期クラスCountDownLatchの詳細説明

Y2J
リリース: 2017-05-11 09:34:03
オリジナル
1813 人が閲覧しました

この記事では、Java のマルチスレッド同期クラス CountDownLatch に関する参考価値の高い関連知識を主に紹介します。以下のエディターで見てみましょう

マルチスレッド開発では、スレッドのグループが完了した後に実行されることを期待する操作に遭遇することがよくあります。Java は、そのようなニーズを満たすことができるマルチスレッド同期補助クラスを提供します。クラス内の共通メソッド:

その中で、

構築メソッド

: CountDownLatch(int count) パラメータ count はカウンタであり、通常、実行されるスレッドの数が割り当てられます。

long getCount(): 現在のカウンター値を取得します。

void countDown(): カウンタ値が 0 より大きい場合、メソッドが呼び出され、カウンタ値が 1 減ります。カウンタが 0 に達すると、すべてのスレッドが解放されます。

void await(): カウンタがゼロになるまで現在のメインスレッドをブロックするようにこのメソッドを調整します。

コード例:

スレッドクラス:

import java.util.concurrent.CountDownLatch;
public class TestThread extends Thread{
CountDownLatch cd;
String threadName;
public TestThread(CountDownLatch cd,String threadName){
 this.cd=cd;
 this.threadName=threadName;

}
@Override
public void run() {
 System.out.println(threadName+" start working...");
 dowork();
 System.out.println(threadName+" end working and exit...");
 cd.countDown();//告诉同步类完成一个线程操作完成

}
private void dowork(){
 try {
 Thread.sleep(2000);
 System.out.println(threadName+" is working...");
 } catch (InterruptedException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }

}

}
ログイン後にコピー

テストクラス:

import java.util.concurrent.CountDownLatch;
public class TsetCountDownLatch {

 public static void main(String[] args) {
 try {
  CountDownLatch cd = new CountDownLatch(3);// 表示一共有三个线程
  TestThread thread1 = new TestThread(cd, "thread1");
  TestThread thread2 = new TestThread(cd, "thread2");
  TestThread thread3 = new TestThread(cd, "thread3");
  thread1.start();
  thread2.start();
  thread3.start();
  cd.await();//等待所有线程完成
  System.out.println("All Thread finishd");
 } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
}
ログイン後にコピー
出力結果:

 thread1 start working...
 thread2 start working...
 thread3 start working...
 thread2 is working...
 thread2 end working and exit...
 thread1 is working...
 thread3 is working...
 thread3 end working and exit...
 thread1 end working and exit...
 All Thread finishd
ログイン後にコピー

【関連推奨事項】

1.

Java無料ビデオチュートリアル

2.

オタクアカデミーJava ビデオ チュートリアル

3.

Alibaba Java 開発マニュアル

以上がマルチスレッド同期クラスCountDownLatchの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!