gpt4 book ai didi

java - 当前一次运行一个线程,想要使其并发

转载 作者:行者123 更新时间:2023-11-30 03:54:41 25 4
gpt4 key购买 nike

  while(startYear <= endYear){
try {
GetNamesThread st = new GetNamesThread(startYear, numNames, allNames);

st.start();try {
st.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

startYear++;
}

所以基本上我会经历一个循环,每次运行一个不同的线程,并在启动下一个线程之前完成该线程。我不知道如何运行从 startYear 到 endYear 的所有线程。对于从哪里开始有什么想法或建议吗?

最佳答案

将创建的线程保留在列表中,并在第一个循环中启动每个线程,而不执行 join()。然后迭代列表并连接每个线程。

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

while(startYear <= endYear){
try {
GetNamesThread st = new GetNamesThread(startYear, numNames, allNames);

st.start();
threads.add(st);
} catch (IllegalThreadStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

startYear++;
}

for (GetNamesThread thread : threads) {
try {
thread.join();
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

关于java - 当前一次运行一个线程,想要使其并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527350/

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