Java by API/java.util.concurrent/CountDownLatch
CountDownLatch: await()
<source lang="java">
import java.util.concurrent.CountDownLatch;
public class Main {
public static void main(String args[]) { CountDownLatch cdl = new CountDownLatch(5); new MyThread(cdl); try { cdl.await(); } catch (InterruptedException exc) { System.out.println(exc); } System.out.println("Done"); }
}
class MyThread implements Runnable {
CountDownLatch latch; MyThread(CountDownLatch c) { latch = c; new Thread(this).start(); } public void run() { for(int i = 0; i<5; i++) { System.out.println(i); latch.countDown(); // decrement count } }
}
</source>
CountDownLatch: countDown()
<source lang="java">
import java.util.concurrent.CountDownLatch;
public class Main {
public static void main(String args[]) { CountDownLatch cdl = new CountDownLatch(5); new MyThread(cdl); try { cdl.await(); } catch (InterruptedException exc) { System.out.println(exc); } System.out.println("Done"); }
}
class MyThread implements Runnable {
CountDownLatch latch; MyThread(CountDownLatch c) { latch = c; new Thread(this).start(); } public void run() { for(int i = 0; i<5; i++) { System.out.println(i); latch.countDown(); // decrement count } }
}
</source>