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


    提问者: 旺旺商城 | 浏览次数:1904次

    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人为结束吗?还是进程执行完了自动结束。最主要的还是判断十个进程是否都已结束

    问题补充:

    但是执行完了我用isAlive属性来判断,进程还是处于Runable
    满意回答
     在class ReadFileThread implements Runnable
    {
    设置一个静态变量count
    public static int count=0;
    每次建立一个线程的时候count++

    public static void main(String[] args){

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

    }
    然后线程结束的时候这样增加一个
    finally
    try{
    //.....read file(i);
    }
    catch(Exception e){
    e.printStackTrace();
    } finalliy{             //增加这个finally
    synchronized (this) {
    this.count--;
    }
    }
    }

    在main函数中当
    while(true)
    {
    if(ReadFileThread.count==0)//所有线程结束
    {
    //这边执行你的逻辑代码

    }
    }
  • 相关阅读:
    [ZJOI2008]树的统计
    树链剖分总结
    动态主席树(带修改的区间第k大)(树套树)
    实现一个函数输入123456789,输出123,456,789”
    简单的requestAnimationFrame动画
    js的下拉刷新和上拉加载,基于iScroll v4.2.5
    深拷贝和浅拷贝
    js中this的指向
    创建对象的方法
    js继承的方式
  • 原文地址:https://www.cnblogs.com/zhwl/p/2733856.html
Copyright © 2020-2023  润新知