如何在主程序中等待所有生成的线程结束?

crm2000 2002-04-20 05:42:01
我在主程序中,interpreter是个实现了Runnable接口的对象组,在这个循环中生成很多线程,并start
while(i<intColumnsCount){
interpreter[i]=new DatabaseInterpreter() ;
//tg为线程组
Thread th = new Thread(tg,interpreter[i]);
th.start() ;
i++ ;
}
由于我要得到各个线程(它们都进行运算,并各生成一个值)执行完后的各个值,所以我得等待它们全部执行完,所以:
while( tg.activeCount()>0 )
{
try
{
Thread.currentThread().sleep(1000);
}
catch(InterruptedException e){}
}
这样可以吗?其中Thread.currentThread().sleep(1000)我的本意是主线程休息,是不是这样呢?

...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengjuncsdn 2002-04-21
  • 打赏
  • 举报
回复
if(1<0)
while(i<intColumnsCount){
interpreter[i]=new DatabaseInterpreter() ;
//tg为线程组
Thread th = new Thread(tg,interpreter[i]);
th.start() ;
i++ ;
}
再运行主主线程
crm2000 2002-04-21
  • 打赏
  • 举报
回复
没看懂楼上的这段程序的意思.
采用我原先的方法就有一个问题,一旦线程中出现异常,并且弹出对话框提示用户的话就很可怕了。
crm2000 2002-04-20
  • 打赏
  • 举报
回复
这不是判断的问题,我用getActiveCount一样可以判断,而是我不想用我的那种循环判断getActiveCount()==0,这样感觉很不爽。
wes109 2002-04-20
  • 打赏
  • 举报
回复
如果你使用的是ThreadGroup可以用isDestroyed()判断
crm2000 2002-04-20
  • 打赏
  • 举报
回复
哪位高手帮帮忙?有什么更好的方法吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧