我说过两个线程 t1 和 t2 我想同时启动(同时),每次调用System.out.println()
打印到控制台,然后同时完成。
请告知如何通过执行器框架来实现这一点。我正在尝试在执行器框架本身的帮助下做到这一点.. !!
我说过两个线程 t1 和 t2 我想同时启动(同时),每次调用System.out.println()
打印到控制台,然后同时完成。
请告知如何通过执行器框架来实现这一点。我正在尝试在执行器框架本身的帮助下做到这一点.. !!
您可以使用 2 CountDownLatch
es 或 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
}
}
};