gpt4 book ai didi

java - 当没有更多线程处于 Activity 状态时如何跳出循环

转载 作者:行者123 更新时间:2023-12-01 17:18:35 25 4
gpt4 key购买 nike

我有一个程序,可以在其中初始化并启动可变数量的线程。我需要主程序与线程交互,因此我将它们放入无限循环中。在所有线程都死掉之后,我想要一种方法来打破循环。这是我的部分代码:

public static void main(String[] args) {
//some random initializing

for(int i = 1; i <= num; i++){ //p1 is a Runnable
Thread t = new Thread(p1, "t"+ Integer.toString(i));
t.start();
}
while(true){
//do some stuff while threads are active
//not sure what if statement to put here to break loop
}

如果需要,我可以发布更多代码,但我认为这在很大程度上是无关紧要的。

最佳答案

您可以使用CountDownLatch (自 java 1.5 起)这里,tt 是一种同步辅助工具,它允许一个或多个线程等待,直到其他线程中执行的一组操作完成。

片段:

CountDownLatch signal = new CountDownLatch(num);
...
for(int i = 1; i <= num; i++){ //p1 is a Runnable
Thread t = new Thread(p1, "t"+ Integer.toString(i),signal);
t.start();
}
signal.await(); // wait for all to finish

...在线程的 run() 方法中...

public void run(){
... // do stuff
signal.countDown(); // sending signal that work has done.
}

关于java - 当没有更多线程处于 Activity 状态时如何跳出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392822/

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