私はカスタムjavaバリアを実装したいと思います。私はCyclicBarrier classを使用したくありません。カスタムjavaバリアを実装する
したがって、すべてのスレッドは共通点で会合します。スレッドは、すべてのスレッドがバリアに到着した場合にのみ実行されます。
障壁を実装するためにwait/notify/notifyAllメソッドを使用したいと思います。
だから、これは私が
public class Barrier{
private final int threadNumber;
public Barrier(int pThreadNumber){
this.threadNumber = pThreadNumber;
}
public synchronized void barrier(){
wait();
}
public synchronized void releaseBarrier(){
notifyAll();
}
public synchronized void releaseThread(){
notify();
}
}
思い付いたものです。しかし、私は本当にすべてのスレッドが到着するまでのスレッドの一定数が停止していることを実現する方法を理解していません。 wait/notify/notify allだけを使用してバリアを実装することは可能ですか?
あなたはthreadNumber
スレッドが待機しているとき、すべてのスレッドが続行したい:
この宿題はありますか?またはCyclicBarrierを使用したいのはなぜですか? – meriton
私はちょうどJavaスレッドと並行性を取得しようとすると、これは興味深い練習することを学ぶ –