我正在编写将产生两个线程的代码,然后使用 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");
}
}
知道我做错了什么吗?或者有没有更好的方法来编写这些屏障同步方法?请帮忙。