java執行緒池(newFixedThreadPool)執行緒消失疑問?

時間 2021-05-30 14:32:29

1樓:

原始碼看不看不重要,建議詳細看一下 jdk 自帶執行緒池的文件。

jdk 自帶執行緒池中線程何時銷毀是由執行緒池的多個引數綜合決定的,所以使用者提交的執行緒中是否丟擲了異常對執行緒池中線程的銷毀是沒有影響的。

如果使用者提交的執行緒丟擲了異常會退出使用者執行緒的 run 方法,執行執行緒是否需要銷毀由執行緒池決定。

2樓:藍姆達

Worker thread不會因為丟擲RuntimeException而被銷毀,因為執行時try-catch了RuntimeException。

以ThreadPoolExecutor為例,可以看到在runWorker方法中,RuntimeException、Error、Throwable都被catch了。

如何處理RTE,可以參考我寫的博文。

3樓:麝香貓

首先,這類的問題在Stack OverFlow上問更加合適,而不應該是知乎。

不過既然你誠心誠意的問了,我那就大發慈悲的告訴你吧

就這樣,你終止的只是當前執行緒的任務而已,跟是否銷毀執行緒無關。

Java執行緒池應該如何使用?

半圓學社 執行緒池應該在程式啟動的時候進行初始化,中間只要不出現異常或沒有特殊需求則可以不關閉。執行緒的建立和銷毀要花費時間,使用執行緒池可以復用執行緒,執行緒池可以設定核心執行緒數量,核心執行緒處理完任務後,並不會銷毀,而是保持空閒直到下一次有執行緒需要建立時,直接執行任務。 隨心隨意 說點我的理...

epoll 執行緒池模型與執行緒池模型有什麼區別?

uuchen select poll epoll從根本上說就是講io操作阻塞在如上函式上以達到io復用的目的,從而在乙個執行緒上處理多個io。 dong 簡單的執行緒池模型為每個連線建立乙個執行緒,當有1k個空閒長連線,那麼你就需要1k個執行緒才能處理。epoll 執行緒池模型則是IO執行緒處理IO...

java多執行緒問題求解?

Allen 沒有解決資料競爭問題需要用一把共有的鎖而不是同步方法因為那相當於乙個執行緒一把鎖 簡單修改成 inta private Object object new Object private volatile Integeri 0 static Lock lock new ReentrantL...