Redian新闻
>
请问如何同时启动多个进程并等待
avatar
请问如何同时启动多个进程并等待# Java - 爪哇娇娃
g*j
1
我通过swingworker同时启动了N个进程,执行不同的任务,我希望他们都结束以后
才继续执行下面的further(),可是further()也立即执行了。请问如何解决,多谢。
for(int i=0;iSwingWorker worker = new SwingWorker() {
public Object construct() {
...
return null;
}
public void finished() {
...
}
};
worker.start();
}
...
further();
avatar
g*g
2
simplest way, keep an array of boolean, mark a boolean when a thread
is done. The main thread use a
while(boolean array is not completely set){
sleep
}
Or you can use notify to achieve better performance.

【在 g****j 的大作中提到】
: 我通过swingworker同时启动了N个进程,执行不同的任务,我希望他们都结束以后
: 才继续执行下面的further(),可是further()也立即执行了。请问如何解决,多谢。
: for(int i=0;i: SwingWorker worker = new SwingWorker() {
: public Object construct() {
: ...
: return null;
: }
: public void finished() {
: ...

avatar
g*j
3
嗯,好方法,多谢了。

【在 g*****g 的大作中提到】
: simplest way, keep an array of boolean, mark a boolean when a thread
: is done. The main thread use a
: while(boolean array is not completely set){
: sleep
: }
: Or you can use notify to achieve better performance.

avatar
c*t
4
CyclicBarrier of Java 1.5 can also be used.

【在 g****j 的大作中提到】
: 我通过swingworker同时启动了N个进程,执行不同的任务,我希望他们都结束以后
: 才继续执行下面的further(),可是further()也立即执行了。请问如何解决,多谢。
: for(int i=0;i: SwingWorker worker = new SwingWorker() {
: public Object construct() {
: ...
: return null;
: }
: public void finished() {
: ...

avatar
s*e
5
if you go for array of booleans, one thing you should consider is infinite
loop. This is always a concern with sleeping and polling.
cyclicbarrier should handle it more elegently.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。