我说两个线程t1和t2我想同时启动(同时),每个调用System.out.println()
打印到控制台,然后同时完成。
请告知如何通过执行程序框架实现这一目标。我试图在执行器框架本身的帮助下完成它。!!
答案 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
}
}
};