gpt4 book ai didi

java - 如何在主线程中为循环中启动的线程定义会合点?

转载 作者:行者123 更新时间:2023-11-29 07:32:21 24 4
gpt4 key购买 nike

我对多线程很陌生,这就是我想做的:

我如何检查我所有启动的线程是否都已完成?

我通过这样做开始他们

for (Auftrag auftrag: auftragsliste) {
RunnableFS thread = new RunnableFS(auftrag, optionen, elmafs);
thread.start();
}

// I want to do something here after all my above started threads have finished

我知道通过 thread.join() 我可以实现一个主线程等待另一个完成的点。但是,如果我在 for 循环中执行此操作,我将回到单线程 :(

最佳答案

你可以维护一个 RunnableFS 的列表,在启动所有线程之后,你可以遍历它们并执行 join() (顺便说一句,我不知道什么是 RunnableFS)

List<RunnableFS> threads = new ArrayList<>();

for (Auftrag auftrag: auftragsliste) {
RunnableFS thread = new RunnableFS(auftrag, optionen, elmafs);
thread.start();
threads.add(thread);
}

// Later
for(RunnableFS thread: threads){
thread.join();
}

关于java - 如何在主线程中为循环中启动的线程定义会合点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40366448/

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