java 判断线程池 任务是否执行完毕 |
您所在的位置:网站首页 › 如何判断线程池中线程全部执行完毕的方法 › java 判断线程池 任务是否执行完毕 |
shutdown void shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用。 抛出: 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 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]结束 所有的子线程都结束了! 主线程结束 原文:http://my.oschina.net/u/1866821/blog/518061 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |