【CountDownLatch】实现多个线程同时启动

来源:互联网 发布:淘宝几块一只的人参 编辑:程序博客网 时间:2024/05/17 01:35

要点:

1、 CountDownLatch的计数是1.

2、await发生在多个子线程,主线程负责countDown,相当于管理多个线程的同步时机。

package multithread;import java.util.HashMap;import java.util.Iterator;import java.util.concurrent.CountDownLatch;public class CountDownLatchSyncStart {@SuppressWarnings("unchecked")public static void main(String[] args) throws InterruptedException {CountDownLatchSyncStart test = new CountDownLatchSyncStart();CountDownLatch latch = new CountDownLatch(1);Thread t1 = new Thread(test.new MapOper(latch));Thread t2 = new Thread(test.new MapOper(latch));t1.setName("Thread1");t2.setName("Thread2");t1.start();t2.start();System.out.println("thread already start, sleep for a while...");Thread.sleep(1000);latch.countDown();}public class MapOper implements Runnable {CountDownLatch latch ;public MapOper(CountDownLatch latch) {this.latch = latch;}public void run() {try {latch.await();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(Thread.currentThread().getName()+" Sync Started!");}}}


原创粉丝点击