多线程如何判断全部线程是否已经全部结束?

jsx1987 2008-10-17 02:08:49
class ReadFileThread implements Runnable
{

int i=0;
public ReadFileThread(int i){
this.i=i;
}
public void readFileThread(int i){

try{
//.....read file(i);
}
catch(Exception e){
e.printStackTrace();
}
}
public void run(){
try
{
this.readFileThread(i);
}
catch(Exception e)
{


}
}
}


public class TextThread
{
public static void main(String[] args){

for(int i=0;i<10;i++){
new Thread(new ReadFileThread(i)).start();
}
}

}


以上程序使十个进程开始读10个文件,一个进程读一个文件,现在有一个问题就是如何判断十个进程都已经结束。要用Stop人为结束吗?还是进程执行完了自动结束。最主要的还是判断十个进程是否都已结束
...全文
281 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2008-10-17
  • 打赏
  • 举报
回复
JaredJared 2008-10-17
  • 打赏
  • 举报
回复
方式很多,通过CountDown、Semaphore等可以。如通过CountDown类线程执行完了释放,在main方法中等待所有线程完成。
public class TextThread
{

public static void main(String[] args){
CountDown countDown = new CountDown(10);
for(int i=0;i <10;i++){
new Thread(new ReadFileThread(i,countDown)).start();
}
countDown.acquire();//等待线程完成

}
在ReadFileThread 类里面线程执行完成后调用countDown.release();//释放

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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