Executors线程池关闭时间计算
生活随笔
收集整理的這篇文章主要介紹了
Executors线程池关闭时间计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Executors線程池關閉時間計算
學習了:http://blog.csdn.net/wo541075754/article/details/51564359
https://www.cnblogs.com/stonefeng/p/5967451.html
http://blog.csdn.net/alinshen/article/details/78090043
shutdown方法:平滑的關閉ExecutorService,當此方法被調用時,ExecutorService停止接收新的任務并且等待已經提交的任務(包含提交正在執行和提交未執行)執行完成。當所有提交任務執行完畢,線程池即被關閉。awaitTermination方法:接收人timeout和TimeUnit兩個參數,用于設定超時時間及單位。當等待超過設定時間時,會監測ExecutorService是否已經關閉,若關閉則返回true,否則返回false。一般情況下會和shutdown方法組合使用。代碼:
package com.stono.thread;import java.util.concurrent.Callable; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;public class ExecutorShutdown {public static void main(String[] args) throws Exception {ScheduledExecutorService service = Executors.newScheduledThreadPool(4);for(int i=0;i<10;i++){service.submit(new Task());}service.submit(new LongTask());service.shutdown();while(!service.awaitTermination(1, TimeUnit.SECONDS)){System.out.println("線程池沒有關閉");}System.out.println("線程池已經關閉============");} } class Task implements Callable<Object>{@Overridepublic Object call() throws Exception {System.out.println("普通任務");return null;}} class LongTask implements Callable<Object>{@Overridepublic Object call() throws Exception {System.out.println("長時間任務");TimeUnit.SECONDS.sleep(15);return null;}}?
轉載于:https://www.cnblogs.com/stono/p/8168861.html
總結
以上是生活随笔為你收集整理的Executors线程池关闭时间计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发编程之ThreadLocal
- 下一篇: kvm虚拟机命令梳理