如果监听一个线程是否完成了呢,我需要做一个并发线程,比如有5个线程,都执行完了才能知道结果,我如果才能知道这个5个同时运行的线程完成了呢

解决方案 »

  1.   

    清蒸豆豆 :我需要用while循环来一直检测吗检测吗 ,直到 共享变量为一
      

  2.   

    Thread的join方法可能适合楼主(对楼主真正需求不是很清楚)
    或可以用java.util.concurrent.CountDownLatch
      

  3.   

     一般情况下我们创建线程是实现Runnable接口。像你这种可以实现Callable<T> 运行方法完成时返回一个Object 你可以类型转换。你运行它的时候还能获得一个Future 可以通过里面的isDone和get方法满足你的要求。具体方法名什么的看下API
      

  4.   

     一般情况下我们创建线程是实现Runnable接口。像你这种可以实现Callable<T> 运行方法完成时返回一个Object 你可以类型转换。你运行它的时候还能获得一个Future 可以通过里面的isDone和get方法满足你的要求。具体方法名什么的看下API
      

  5.   


    class A implements Callable<T>{
       public Integer call() throws Exception {
    }
    }
      

  6.   


    不好意思没写完。public class Test {
    public static void main(String[] args){
    A a=new A();
    FutureTask<Integer> task=new FutureTask<Integer>(a);
    Thread thread=new Thread(task);
    thread.start();
    task.get();
    }
    }class A implements Callable<T> { @Override
    public T call() throws Exception {
      return null;
    }
    }根据task去判断线程是否执行完毕,FutureTask有isDone()方法返回boolean类型。判断线程是否执行完毕,FutureTask 的get方法如果线程没有结束,方法将阻塞。