shutdown&&isTerminated
shutdown
void shutdown()
启动一次顺序关闭,执行以前提交的任务,但不接受新任务。若已经关闭,则调用没有其他作用。
抛出:SecurityException - 如果安全管理器存在并且关闭,此 ExecutorService 可能操作某些不允许调用者修改的线程(因为它没有保持RuntimePermission("modifyThread")),或者安全管理器的 checkAccess 方法拒绝访问。
isTerminated
boolean isTerminated()
若关闭后所有任务都已完成,则返回true。注意除非首先调用shutdown或shutdownNow,否则isTerminated永不为true。返回:若关闭后所有任务都已完成,则返回true。
- public static void moreThread() {
- try {
- int threadNum = 0;
- for (int i = 0; i < 10; i++) {
- threadNum++;
- final int currentThreadNum = threadNum;
- exe.execute(new Runnable() {
- @Override
- public void run() {
- try {
- System.out.println("子线程[" + currentThreadNum + "]开启");
- Thread.sleep(1000*10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }finally{
- System.out.println("子线程[" + currentThreadNum + "]结束");
- }
- }
- });
- }
- System.out.println("已经开启所有的子线程");
- exe.shutdown();
- System.out.println("shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。");
- while(true){
- if(exe.isTerminated()){
- System.out.println("所有的子线程都结束了!");
- break;
- }
- Thread.sleep(1000);
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }finally{
- System.out.println("主线程结束");
- }
- }
- 子线程[1]开启
- 子线程[6]开启
- 子线程[2]开启
- 子线程[5]开启
- 子线程[9]开启
- 已经开启所有的子线程
- 子线程[3]开启
- 子线程[7]开启
- 子线程[10]开启
- shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。
- 子线程[4]开启
- 子线程[8]开启
- 子线程[6]结束
- 子线程[3]结束
- 子线程[7]结束
- 子线程[2]结束
- 子线程[1]结束
- 子线程[5]结束
- 子线程[9]结束
- 子线程[4]结束
- 子线程[10]结束
- 子线程[8]结束
- 所有的子线程都结束了!
- 主线程结束
shutdown&&isTerminated的更多相关文章
- shutdown彻底关闭tomcat,以及多线程关闭
最近做的一个Web项目,发现shutdown.sh后,无法关掉tomcat进程. ps -ef | grep tomcat 返回tomcat进程仍然存在.经过调查发现是因为在Web应用中启动了线程池, ...
- ThreadPoolExecutor 中的 shutdown() 、awaitTermination() 、 shutdownNow() 的用法
shutdown和awaitTermination为接口ExecutorService定义的两个方法,一般情况配合使用来关闭线程池. 方法简介shutdown方法:将线程池状态置为SHUTDOWN.平 ...
- Java线程池关闭1-shutdown和isTerminated<转>
shutdownvoid shutdown()启动一次顺序关闭,执行以前提交的任务,但不接受新任务.若已经关闭,则调用没有其他作用.抛出:SecurityException - 如果安全管理器存在并且 ...
- Java线程池,isShutDown、isTerminated的作用与区别
isShutDown当调用shutdown()或shutdownNow()方法后返回为true. isTerminated当调用shutdown()方法后,并且所有提交的任务完成后返回为true;is ...
- Tomcat shutdown执行后无法退出进程问题排查及解决
问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...
- apche启动错误|httpd.pid overwritten — Unclean shutdown of previous Apache run?
APACHE启动成功,但无法接受任何请求,查看ERROR.LOG文件[warn] pid file /opt/apache/logs/httpd.pid overwritten - Unclean s ...
- 登陆Oracle,报oracle initializationg or shutdown in progress 错误提示
前两天,登陆Oracle,发现登陆不上去了,报”oracle initializationg or shutdown in progress 错误提示” 错误. 然后就想着怎么去解决,首先自己到win ...
- init shutdown reboot poweroff halt区别
init 首先看看LINUX系统几种运行级别# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)# 1 - 单用户模式# 2 - 多用户,没有 NFS# 3 - 完全多用户 ...
- 谢欣伦 - 原创软件 - 工具软件 - 快速关机Shutdown
快速关机Shutdown,含源码. 公司公用的笔记本电脑实在太烂,不知从什么时候开始关机永远都关不了,一直停留在“关闭系统中……”.忍无可忍之下,自己写了一个快速关机程序. 下载: Shutdown_ ...
随机推荐
- UOJ UR#9 App管理器
题目传送门 题目大意大概就是给你一个混合图(既有有向边又有无向边),对于每条无向边,u-v,问删去u->v,或删去v->u那条可以使新图强连通.(保证数据有解). 这道题前几个数据点送分. ...
- 10.30 开课一个月零二十六天 (PHP数据库修改)
1.先做一个修改页面 <body> <!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页面的效果非常相似,直接把增加页面的代码复制过来--> &l ...
- jsp jstl 值空格拼接导致的异常
红线标记处多了个空格,所以出现值错误
- Flutter - 创建横跨所有页面的侧滑菜单
前一篇博客讲到了如何创建侧滑菜单,但是再实际使用过程中,会发现,这个策划菜单只能在首页侧滑出来. 当导航到其他页面后,侧滑就不管用了.这也有点不符合良好的用户体验设计.Google Play就是很好的 ...
- dubbo 接口初入门
最近公司开发新的一套系统,开发出来的方案会基于dubbo分布式服务框架开发的,那么什么是dubbo,身为测试的我,第一眼看到这个,我得去了解了解dubbo是啥玩意,为开展的测试工作做准备,提前先学 d ...
- oracle数据库之rownum和rowid用法
Rownum 和 Rowid是Oracle数据库所特有的,通过他们可以查询到指定行数范围内的数据记录. 以下通过例子讲解: -- 为了方便,首先,查找dept表中的所有. select deptn ...
- 2.深入解析数据类型与变量——《Excel VBA 程序开发自学宝典》
2.1 数据类型 数据类型 所占字节 Byte 1 Boolean 2 Integer 2 Long 4 Single 4 Double 8 Currency 8 Decimal 14 Date 8 ...
- 离线人脸识别 ArcFaceSharp -- ArcFace 2.0 SDK C#封装库分享
ArcFaceSharp ArcFaceSharp 是ArcSoft 虹软 ArcFace 2.0 SDK 的一个 C# 封装库,为方便进行 C# 开发而封装.欢迎 Start & Fork. ...
- FFmpeg简单转码程序--视频剪辑
学习了雷神的文章,慕斯人分享精神,感其英年而逝,不胜唏嘘.他有分享一个转码程序<最简单的基于FFMPEG的转码程序>其中使用了filter(参考了ffmpeg.c中的流程),他曾说想再编写 ...
- Java里字符串split方法
Java中的split方法以"."切割字符串时,需要转义 String str[] = s.split("\\.");