執行緒池面試相關

2021-09-29 17:28:06 字數 683 閱讀 9824

你們專案中是如何建立執行緒池的呢?

new threadpoolexcutor();excutorservice service = excutors.newfixpoolexcutor(n);

excutorservice service = excutors.newcachepoolexcutor();

excutorservice service = excutors.newsinglepoolexcutor();

excutorservice service = excutors.newscheduledpoolexcutor();

推薦new threadpoolexcutor來新建執行緒池,其他方式可能引起oom。

執行緒池的工作原理?

當執行緒池數量小於核心執行緒池數量時,新提交任務會新建乙個執行緒來執行。

當執行緒池數量大於核心執行緒池數量時,新提交任務會進入佇列等待。

當佇列已滿時,但是執行緒池數量小於最大執行緒池數量時,新提交任務會新建乙個執行緒來執行

當執行緒池數量大於最大執行緒池數量時,會執行拒絕策略。

佇列arrayblockingsqueue和linkedblockingqueue的區別?

前者建立時必須指定佇列大小,有界佇列。後者不指定佇列大小時,為無界佇列。

執行緒池相關

介面 executor,executorservice,scheduledexecutorservice 抽象類 abstractexecutorservice 類 threadpoolexecutor,scheduledthreadpoolexecutor 1.分析threadpoolexecut...

多執行緒 執行緒池相關

銀行有四個視窗辦業務,好比四個cpu。如果只開乙個執行緒的話,相當於所有辦業務的人都排成一隊在乙個視窗辦業務,或者說每個人都必須等上乙個人辦完業務之後隨機選乙個視窗,總之就是序列乙個個來。所以這體現了多執行緒優點的就是可以充分利用現在計算機配置多核cpu的硬體特性,把多核cpu利用起來提高任務的處理...

執行緒池專項面試

執行緒池名稱 引數適用場景 弊端newsinglethreadexecutor 1,1,0,毫秒時間單位,linkedblockingqueue 適用需要序列執行的任務 任務會堆積在佇列中,數量多的話,會造成資源不足,引起oom newfixedthreadpool n,n,0,毫秒時間單位,lin...