Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Multithread-Synchronisationsklasse CountDownLatch

Detaillierte Erläuterung der Multithread-Synchronisationsklasse CountDownLatch

Y2J
Y2JOriginal
2017-05-11 09:34:031888Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Kenntnisse der Multithread-Synchronisationsklasse CountDownLatch in Java vorgestellt, die einen guten Referenzwert hat. Werfen wir einen Blick darauf mit dem Editor unten

Bei der Multithread-Entwicklung stoßen wir häufig auf Vorgänge, die wir ausführen möchten, nachdem eine Gruppe von Threads abgeschlossen ist. Java bietet eine Multithread-Synchronisations-Hilfsklasse, die dies kann Führen Sie diese Art von Operation aus. Anforderungen: Gängige Methoden in der Klasse

Darunter die

Konstruktormethode

: CountDownLatch(int count) Der Parameter count ist ein Zähler, dem im Allgemeinen die Anzahl der auszuführenden Threads zugewiesen wird.

long getCount(): Ermittelt den aktuellen Zählerwert.

void countDown(): Wenn der Zählerwert größer als Null ist, wird die Methode aufgerufen und der Zählerwert um 1 reduziert. Wenn der Zähler Null erreicht, werden alle Threads freigegeben.

void waiting(): Rufen Sie diese Methode auf, um den aktuellen Hauptthread zu blockieren, bis der Zähler auf Null sinkt.

Codebeispiel:

Thread-Klasse:

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();
 }

}

}
Testklasse:

Ausgabeergebnisse:
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();
 }
 }
}

[Verwandte Empfehlungen]
 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-kostenloses Video-Tutorial

2.

Geek Academy Java Video Tutorial

3.

Alibaba Java Development Manual

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Multithread-Synchronisationsklasse CountDownLatch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn