[英]Thread pool issue in java
嗨,以下代碼在應用程序中使用
threadPool.shutdown();
while (!threadPool.awaitTermination(10, TimeUnit.SECONDS)) {
logger.info("Waiting for "
+ (threadPool.getQueue().size() + threadPool
.getActiveCount()) + " jobs to complete.");
}
當應用程序運行時,它陷入了循環
上面的語句是連續出現的,實際上線程正在對數據庫執行更新操作。將時間增加到10秒以上將在這種情況下有所幫助。任何建議都是有幫助的
ThreadPoolExecutor.shutdown()
的文檔說:
啟動有序關閉,在該關閉中執行先前提交的任務,但不接受任何新任務。 如果已關閉,則調用不會產生任何其他影響。
這意味着您的工作線程負責關閉自己。 您尚未為員工提供代碼,但我假設他們正在執行不會退出的阻塞操作。 解決此問題的常用方法是讓工作人員例行檢查在shutdown
調用之前設置的某種共享變量。 他們被有效告知他們停止所做的任何事情。 AtomicBoolean
應該可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.