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