如果监听一个线程是否完成了呢
如果监听一个线程是否完成了呢,我需要做一个并发线程,比如有5个线程,都执行完了才能知道结果,我如果才能知道这个5个同时运行的线程完成了呢
[解决办法]
可以利用回调,五个线程共享一个变量,每一个结束+1,当共享变量为一时,就是都完成了···
个人观点
[解决办法]
Thread的join方法可能适合楼主(对楼主真正需求不是很清楚)
或可以用java.util.concurrent.CountDownLatch
[解决办法]
一般情况下我们创建线程是实现Runnable接口。像你这种可以实现Callable<T> 运行方法完成时返回一个Object 你可以类型转换。你运行它的时候还能获得一个Future 可以通过里面的isDone和get方法满足你的要求。具体方法名什么的看下API
[解决办法]
class A implements Callable<T>{
public Integer call() throws Exception {
}
}
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;
}
}