0

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

请告知如何通过执行器框架来实现这一点。我正在尝试在执行器框架本身的帮助下做到这一点.. !!

4

1 回答 1

6

您可以使用 2 CountDownLatches 或 aCyclicBarrier来做到这一点。例如:

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
        }
    }
};
于 2012-09-11T16:33:36.650 回答