gpt4 book ai didi

java - 实现自定义 Java 屏障

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:09 26 4
gpt4 key购买 nike

我想实现自定义 Java 屏障。我不想使用 CyclicBarrier class .

所以所有线程都在一个公共(public)点相遇。只有当所有线程都到达屏障时,线程才会继续。

我想使用 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();
}
}

但是我不太明白如何实现在所有线程到达之前停止一定数量的线程。是否可以仅使用等待/通知/全部通知来实现屏障?

最佳答案

有点家庭作业,所以我只是给出一个提示:

threadNumber 线程正在等待时,您希望所有线程继续进行。这相当于第一个 threadNumber - 1 线程等待第 threadNumber 线程到达。一种方法是计算线程数,并在第 threadNumber 线程到达后执行一些特殊操作。

关于java - 实现自定义 Java 屏障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com