import java.util.concurrent.CountDownLatch;
/**
* 使用CountDownLatch实现多线程同时启动
* @author snlai
*/
public class CountDownLatchTest {
public static void main(String[] args) {
System.out.println("Use CountDownLatch to start threads simultaneously");
CountDownLatchTest countDownLatchTest = new CountDownLatchTest();
CountDownLatch countDownLatch = new CountDownLatch(1);
int num = 3;
for (int i = 0; i < num; i++) {
Thread thread = new Thread(countDownLatchTest.new MyThread(countDownLatch));
thread.start();
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
countDownLatch.countDown();
}
public class MyThread implements Runnable {
CountDownLatch countDownLatch;
public MyThread(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " start!");
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " start doing something simultaneously!");
}
}
}
使用CountDownLatch实现多线程同时启动
最新推荐文章于 2023-08-09 17:59:27 发布