如何优雅的关闭 Java线程池
如何優(yōu)雅的關閉 Java線程池
簡介 在開發(fā)中使用線程池去執(zhí)行異步任務是比較普遍的操作,然而雖然有些異步操作我們并不十分要求可靠性和實時性 ,但總歸業(yè)務還是需要的 。如果在每次的服務發(fā)版過程中,我們不去介入線程池的停機邏輯 ,那么很有可能就會造成線程池中隊列的任務還未執(zhí)行完成,自然就會造成數據的丟失。
探究
注意,本文所有前提是對進程進行下線時使用的是kill -15
我們知道Spring已經實現了自己的優(yōu)雅停機方案,詳細請參考org.springframework.context.support.AbstractApplicationContext#registerShutdownHook