zoukankan      html  css  js  c++  java
  • 多线程如何判断全部线程是否已经全部结束?

    提问者: 旺旺商城 | 浏览次数: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)//所有线程结束
    {
    //这边执行你的逻辑代码

    }
    }
  • 相关阅读:
    各种读取速度
    索引倒排
    清空mysql数据
    java随机读取文件
    移动文件
    输出字符串数组
    背包问题
    使用bloomfilter
    使用hash拆分文件
    判断文件的编码格式
  • 原文地址:https://www.cnblogs.com/zhwl/p/2733856.html
Copyright © 2011-2022 走看看