當一個線程由於異常而死的時候,這個線程會發生什麼?如果它在一個線程池中,它是否會產生一個新的線程?我對scala中的ExecutionContext感興趣,但是由於ExecutionContext包裝了一個java線程池,我認爲Java用戶也會知道答案。例如,如果我創建一個包含FixedThreadPool(100)的ExecutionContext,如果一個線程死亡,他的線程池是否會替換線程?在ExecutionContext和/或Java線程池中是否替換了死線程?
2
A
回答
5
線程本身無法在線程死後產生新線程,但是線程池可以替換它。例如,由Executors.newFixedThreadPool()
創建的線程池將在需要時替換死線程。從Executors.newFixedThreadPool()
的文檔:
「如果任何線程之前 關機執行過程中,由於終止與失敗,如果需要執行 後續任務,將會有新取而代之」
+0
這個新線程將從第一個執行任務還是繼續執行死線程已停止的任務? – masSdev
相關問題
- 1. 線程的ExecutionContext
- 2. 線程是否由線程池管理?
- 3. 線程池死鎖:針對或檢測
- 4. Java線程池
- 5. 線程池死鎖與Task.Result
- 6. 在java中殺死線程
- 7. 在tomcat的線程池中,當線程返回到池時,線程本地值是否被重置或刪除?
- 8. 線程池的Java
- 9. Java線程死亡
- 10. Java,線程死鎖?
- 11. Java線程死鎖
- 12. 殺死一個線程或替代
- 13. 線程池中的線程
- 14. 使用線程池或線程
- 15. 帶線程池的Java線程隊列
- 16. 在C自制線程池的多線程死鎖#
- 17. Java中的線程池
- 18. Java多線程等到子線程死
- 19. 如何判斷java中的線程池中是否有可用的線程
- 20. 將java線程池中的線程作爲守護程序線程是否存在任何問題
- 21. 在Scala中替換線程執行程序池
- 22. Parallel.ForEach是否使用ASP.NET線程池中的線程?
- 23. 任何線程是否應該駐留在線程池之外?
- 24. 線程池是否可以在單線程函數上運行?
- 25. 什麼是在Java線程池RejectedExecutionHandler
- 26. Java中的信號量和線程池
- 27. 線程池運行爲了
- 28. 多線程實例訪問時是否是線程池線程安全?
- 29. BeginXXX和線程池
- 30. InheritableThreadLocal和線程池
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executors.html#newFixedThreadPool-int- –
*如果任何線程之前執行期間終止由於故障如果需要執行後續任務,則新的執行將取代它。* –