如何判断线程池中所有的线程是否已经完成
答案:2 悬赏:70 手机版
解决时间 2021-04-06 10:29
- 提问者网友:富士山上尢
- 2021-04-05 21:26
如何判断线程池中所有的线程是否已经完成
最佳答案
- 五星知识达人网友:逃夭
- 2021-04-05 21:39
//检查线程池的方法 private voidcheckthreadpool(object state, bool timeout){int workerthreads = 0;
int maxwordthreads = 0;
//int int complethreads = 0;
threadpool.getavailablethreads(out workerthreads, out complethreads);
threadpool.getmaxthreads(out maxwordthreads, out complethreads);
//当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成 if (workerthreads == maxwordthreads){//当执行此方法后checkthreadpool将不再执行 rhw.unregister(null);//此处加入所有线程完成后的处理代码}}
int maxwordthreads = 0;
//int int complethreads = 0;
threadpool.getavailablethreads(out workerthreads, out complethreads);
threadpool.getmaxthreads(out maxwordthreads, out complethreads);
//当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成 if (workerthreads == maxwordthreads){//当执行此方法后checkthreadpool将不再执行 rhw.unregister(null);//此处加入所有线程完成后的处理代码}}
全部回答
- 1楼网友:神的生死簿
- 2021-04-05 22:06
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String args[]) throws InterruptedException {
ExecutorService exe = Executors.newFixedThreadPool(50);
for (int i = 1; i <= 5; i++) {
exe.execute(new SubThread(i));
}
exe.shutdown();
while (true) {
if (exe.isTerminated()) {
System.out.println("结束了!");
break;
}
Thread.sleep(200);
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯