天天看點

Java等待線程池終止

1、輪詢isTerminated:

while (!service.isTerminated()) {
            TimeUnit.SECONDS.sleep(1);
        }
           

2、輪詢awaitTermination:

while (!service.awaitTermination(1, TimeUnit.SECONDS)) {
        }
           

service表示線程池對象,當線程池終止時将自動跳出while循環。這兩個方法的實作原理其實是一緻的。我這裡設定了每隔1s輪詢一次,你可以控制輪詢的間隔時間盡可能小,以便及時響應線程池終止後的邏輯。由于這兩個方法都是阻塞的,是以别忘了進行中斷異常。

繼續閱讀