同时启动和杀死线程

时间:2012-09-11 16:32:45

标签: java multithreading

我说两个线程t1和t2我想同时启动(同时),每个调用System.out.println()打印到控制台,然后同时完成。

请告知如何通过执行程序框架实现这一目标。我试图在执行器框架本身的帮助下完成它。!!

1 个答案:

答案 0 :(得分:6)

您可以使用2 CountDownLatch es或CyclicBarrier来执行此操作。例如:

final CountDownLatch start = new CountDownLatch(2);
final CountDownLatch end = new CountDownLatch(2);

Runnable r1 = new Runnable() {
    @Override
    public void run() {
        try {
            start.countDown();
            start.await();
            System.out.println("In 1");
            end.countDown();
            end.await();
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt(); //restore interruption status
        }
    }
};
Runnable r2 = new Runnable() {
    @Override
    public void run() {
        try {
            start.countDown();
            start.await();
            System.out.println("In 2");
            end.countDown();
            end.await();
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt(); //restore interruption status
        }
    }
};
相关问题