public class CountDownLatchDemo {
public static void main(String[] args) {
try {
CountDownLatch downLatch = new CountDownLatch(3);
for (int i = 0; i < 3; i++) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName() + "ready");
// *********将CountDownLatch的数值减1
downLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
System.out.println("=== begin lunch ===");
// "主线程等待线程池中3个任务的完成
downLatch.await();
System.out.println("=== end lunch ===");
} catch (Exception e) {
}
}
}
Java 7之多线程- CountDownLatch
本文通过一个简单的Java示例介绍了CountDownLatch的用法。该示例创建了一个CountDownLatch实例并设置计数为3,接着启动了3个线程,每个线程在执行完毕后调用countDown方法减小计数器的值,主线程通过await方法等待所有子线程执行完毕。

被折叠的 条评论
为什么被折叠?



