優雅地關閉 Java ExecutorService
Executor 是 Java 應用程式中同時管理和執行任務的便捷方法。但是,不正確的關閉可能會導致意外行為或效能問題。本指南詳細說明如何正確關閉 ExecutorService,確保所有任務都終止或取消。
了解ExecutorService 關閉
ExecutorService 提供兩種主要關閉方法:
建議的關閉過程
Oracle 文件建議使用以下方法來正常關閉:<code class="java">void shutdownAndAwaitTermination(ExecutorService pool) { pool.shutdown(); try { // Wait for existing tasks to terminate if (!pool.awaitTermination(60, TimeUnit.SECONDS)) { pool.shutdownNow(); // Wait for tasks to respond to cancellation if (!pool.awaitTermination(60, TimeUnit.SECONDS)) System.err.println("Pool did not terminate"); } } catch (InterruptedException ie) { pool.shutdownNow(); Thread.currentThread().interrupt(); } }</code>
<code class="java">if (!pool.awaitTermination(60, TimeUnit.SECONDS))</code>
<code class="java">while (!pool.awaitTermination(60, TimeUnit.SECONDS))</code>
關機摘要方法
以上是如何正確關閉 Java ExecutorService 執行器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!