java執行緒池中的shutdown()與shutdownNow()
shutDown()
當執行緒池呼叫該方法時,執行緒池的狀態則立刻變成SHUTDOWN狀態。此時,則不能再往執行緒池中新增任何任務,否則將會丟擲RejectedExecutionException異常。但是,此時執行緒池不會立刻退出,直到新增到執行緒池中的任務都已經處理完成,才會退出。
shutdownNow()
根據JDK文件描述,大致意思是:執行該方法,執行緒池的狀態立刻變成STOP狀態,並試圖停止所有正在執行的執行緒,不再處理還在池佇列中等待的任務,當然,它會返回那些未執行的任務。
它試圖終止執行緒的方法是通過呼叫Thread.interrupt()方法來實現的,但是大家知道,這種方法的作用有限,如果執行緒中沒有sleep 、wait、Condition、定時鎖等應用, interrupt()方法是無法中斷當前的執行緒的。所以,ShutdownNow()並不代表執行緒池就一定立即就能退出,它可能必須要等待所有正在執行的任務都執行完成了才能退出。
相關文章
- Java執行緒池中執行緒的狀態簡介Java執行緒
- Java執行緒池中的execute和submitJava執行緒MIT
- Java 執行緒池中的執行緒複用是如何實現的?Java執行緒
- Java 執行緒池獲取池中所有執行緒列表的方法Java執行緒
- 執行緒池中多餘的執行緒是如何回收的?執行緒
- Java實現終止執行緒池中正在執行的定時任務Java執行緒
- 詳解 JUC 執行緒池中的 ThreadPoolExecutor執行緒thread
- Java執行緒:執行緒的同步與鎖Java執行緒
- 執行緒池中的最大執行緒數、核心執行緒數和佇列大小的合理設定執行緒佇列
- Android 執行緒優化之執行緒池shutdown方法Android執行緒優化
- Java與執行緒Java執行緒
- 程式設計規範-父子執行緒必須放在不同的執行緒池中程式設計執行緒
- ExecutorService shutdown()和shutdownNow()方法區別
- 深入理解JVM(③)執行緒與Java的執行緒JVM執行緒Java
- Java執行緒中斷與終止執行緒執行Java執行緒
- Java多執行緒1:程式與執行緒概述Java執行緒
- Java多執行緒學習(1)建立執行緒與執行緒的生命週期Java執行緒
- 執行緒和執行緒池的理解與java簡單例子執行緒Java單例
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- 【JAVA併發第二篇】Java執行緒的建立與執行,執行緒狀態與常用方法Java執行緒
- Java執行緒(一):執行緒安全與不安全Java執行緒
- Java 執行緒安全 與 鎖Java執行緒
- java併發與執行緒Java執行緒
- java中執行緒池的生命週期與執行緒中斷Java執行緒
- 執行緒池中你不容錯過的一些細節執行緒
- Java的Interrupt與執行緒中斷Java執行緒
- Java多執行緒——執行緒Java執行緒
- Java併發實戰一:執行緒與執行緒安全Java執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- java多執行緒與併發 - 執行緒池詳解Java執行緒
- Java執行緒面試題(04) Java中程式與執行緒的真實區別Java執行緒面試題
- Java執行緒篇——執行緒的開啟Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- 執行緒與多執行緒執行緒
- java--執行緒池--建立執行緒池的幾種方式與執行緒池操作詳解Java執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- 【多執行緒與高併發】Java守護執行緒是什麼?什麼是Java的守護執行緒?執行緒Java