Я пишу код, который будет порождать два потока, а затем ждать их синхронизации с использованием класса CyclicBarrier. Проблема в том, что циклический барьер не работает должным образом, и основной поток не ждет завершения отдельных потоков. Вот как выглядит мой код:
class mythread extends Thread{
CyclicBarrier barrier;
public mythread(CyclicBarrier barrier) {
this.barrier = barrier;
}
public void run(){
barrier.await();
}
}
class MainClass{
public void spawnAndWait(){
CyclicBarrier barrier = new CyclicBarrier(2);
mythread thread1 = new mythread(barrier).start();
mythread thread2 = new mythread(barrier).start();
System.out.println("Should wait till both threads finish executing before printing this");
}
}
Любая идея, что я делаю неправильно? Или есть лучший способ написать эти методы барьерной синхронизации? Пожалуйста помоги.