Android先执行线程池后执行主线程
来源:互联网 发布:asp网络程序怎么样? 编辑:程序博客网 时间:2024/06/06 00:01
1.使用CountDownLatch,计数方式判断线程是否结束
定义一个CountDownLatch
private static CountDownLatch cdl = new CountDownLatch(1);//数值是计数器初始值
在主线程中等待,代码如下
try {
cdl.await();
} catch (InterruptedException e) {
}
executorService.shutdown();
在线程池中,执行完线程中的步骤,计数器减一,当计数器得到0,主线程的await就不再等待,主线程被唤醒,写在子线程中的代码如下
cdl.countDown();
然后就可以啦
缺点:不能重复使用,所以…..对于现在的我来说好像没什么用。看别人的博客说,性能貌似也不是很好,不知道为啥,有知道的朋友可以告诉我
2.使用isTerminated判断线程是否结束
前提是在子线程或者线程池里面要把线程或者线程池shutdown
子线程最后加上代码:
executorService.shutdown();//excutorService是线程或者线程池的名字
在主线程中加上代码:
while(true){
if(executorService.isTerminated()){
break;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
3.使用awaitTermination
和第二个方法类似,只是定下一个时间间隙,让主线程每隔这个时间间隙就去检查子线程是否结束
exec.shutdown();
exec.awaitTermination(1, TimeUnit.HOURS);
- Android先执行线程池后执行主线程
- 主线程等待子线程执行完毕后再执行
- 子线程执行完后,主线程在执行场景
- C# 线程池中的线程都执行后,执行主线程中输出
- Guava ListenableFuture 实现多线程 先执行完线程任务 ,再来执行主线程
- 子线程先执行10次,主线程执行5次,子线程再执行10次,主线程再执行5次,如此反复3次
- C#子线程执行完后通知主线程
- 主线程等待所有子线程完成后再执行
- C#子线程执行完后通知主线程
- java线程池主线程等待子线程执行完成后再继续处理后面工作
- java线程池主线程等待子线程执行完成后再继续处理后面工作
- android异步任务完成后再执行主线程任务
- java线程池主线程等待子线程执行完成
- java线程池主线程等待子线程执行完成
- java开启多个线程,执行完成后再执行主线程
- 主线程等待子线程执行结束后再执行的实现方式
- Java多个子线程都执行完后,再执行主线程
- 问题:java主线程等待子线程执行完毕后再执行
- Codeforces Round #390 (Div. 2)(A+B)
- centos7建站操作步骤
- EJB3单元测试
- 【蓝桥杯】试题集入门训练第三题
- 通过vpn链接服务器
- Android先执行线程池后执行主线程
- 电脑远程桌面连接设置【申明:来源于网络】
- eclipse下运行EasyAR官方sample的方法
- 微信iOS WKWebview 网页开发适配指南
- Caffe学习笔记(三):Caffe数据是如何输入和输出的?
- Enable VT-x in your BIOS security settings (refer to documentation for your computer)
- getDeclaredFields()和getFields()
- OpenCV2.2.0版本中无法调取摄像头问题解决
- &&运算符的三个层次理解