<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:線程池中線程異常后,銷毀還是復(fù)用?

          共 1719字,需瀏覽 4分鐘

           ·

          2024-06-17 14:11

          分享兩道比較有意思的線程池面試題,面試中問到至少有 80% 求職者回答不上來。

          這兩個問題也是經(jīng)常被拿來考察求職者對于線程池的了解。

          1. 線程池中線程異常后,銷毀還是復(fù)用?
          2. 線程池在提交任務(wù)前,可以提前創(chuàng)建線程嗎?

          線程池中線程異常后,銷毀還是復(fù)用?

          直接說結(jié)論,需要分兩種情況:

          • 使用execute()提交任務(wù):當(dāng)任務(wù)通過execute()提交到線程池并在執(zhí)行過程中拋出異常時,如果這個異常沒有在任務(wù)內(nèi)被捕獲,那么該異常會導(dǎo)致當(dāng)前線程終止,并且異常會被打印到控制臺或日志文件中。線程池會檢測到這種線程終止,并創(chuàng)建一個新線程來替換它,從而保持配置的線程數(shù)不變。
          • 使用submit()提交任務(wù):對于通過submit()提交的任務(wù),如果在任務(wù)執(zhí)行中發(fā)生異常,這個異常不會直接打印出來。相反,異常會被封裝在由submit()返回的Future對象中。當(dāng)調(diào)用Future.get()方法時,可以捕獲到一個ExecutionException。在這種情況下,線程不會因為異常而終止,它會繼續(xù)存在于線程池中,準(zhǔn)備執(zhí)行后續(xù)的任務(wù)。

          簡單來說:使用execute()時,未捕獲異常導(dǎo)致線程終止,線程池創(chuàng)建新線程替代;使用submit()時,異常被封裝在Future中,線程繼續(xù)復(fù)用。

          這種設(shè)計允許submit()提供更靈活的錯誤處理機制,因為它允許調(diào)用者決定如何處理異常,而execute()則適用于那些不需要關(guān)注執(zhí)行結(jié)果的場景。

          具體的源碼分析可以參考這篇:線程池中線程異常后:銷毀還是復(fù)用?- 京東技術(shù)。

          線程池在提交任務(wù)前,可以提前創(chuàng)建線程嗎?

          答案是可以的!ThreadPoolExecutor 提供了兩個方法幫助我們在提交任務(wù)之前,完成核心線程的創(chuàng)建,從而實現(xiàn)線程池預(yù)熱的效果:

          • prestartCoreThread():啟動一個線程,等待任務(wù),如果已達到核心線程數(shù),這個方法返回 false,否則返回 true;
          • prestartAllCoreThreads():啟動所有的核心線程,并返回啟動成功的核心線程數(shù)。

          ??推薦:

          點擊下方卡片進入公眾號

          回復(fù) 「PDF 即可領(lǐng)取原創(chuàng)PDF技術(shù)面試手冊
          回復(fù) 「學(xué)習(xí)路線 即可獲取最新版Java學(xué)習(xí)路線
          回復(fù) 「開源 即可獲取優(yōu)質(zhì)Java開源項目合集
          免費分享無套路,有幫助點個贊就好!

          瀏覽 929
          4點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          4點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本免费色视频 | 国产日韩AV在线 | 国产一级A片免费播放 | 亚洲视频在线观看视频 | 国产骚妻|