同時に(同時に)開始したい2つのスレッドt1とt2があり、それぞれSystem.out.println()
がコンソールへの印刷を呼び出してから、同時に終了します。
これを達成する方法を、エグゼキュータフレームワークを介して達成できるかどうかをアドバイスしてください。私はエグゼキュータフレームワーク自体の助けを借りてそれをやろうとしています..!!
同時に(同時に)開始したい2つのスレッド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
}
}
};