線程池隊(duì)列滿了怎么辦 線程池滿了怎么辦?
線程池滿了怎么辦?不要盯著線程池,而是看問題在哪。比如是任務(wù)太多,CPU太滿,調(diào)大線程池?zé)o用。這時(shí)應(yīng)該先加CPU,或者加機(jī)器。如果CPU很富裕,是線程池上限卡住了,簡(jiǎn)單調(diào)大最大值即可。如果是任務(wù)執(zhí)行時(shí)
線程池滿了怎么辦?
不要盯著線程池,而是看問題在哪。
比如是任務(wù)太多,CPU太滿,調(diào)大線程池?zé)o用。這時(shí)應(yīng)該先加CPU,或者加機(jī)器。
如果CPU很富裕,是線程池上限卡住了,簡(jiǎn)單調(diào)大最大值即可。
如果是任務(wù)執(zhí)行時(shí)間實(shí)在是太長(zhǎng)了,讓“請(qǐng)求在任務(wù)完成后再返回”這個(gè)設(shè)定不合適,造成用戶體驗(yàn)差,那么應(yīng)該將系統(tǒng)設(shè)計(jì)為啟動(dòng)任務(wù)后請(qǐng)求就返回 定時(shí)的ping任務(wù)完沒完。
dubbo線程池滿了會(huì)超時(shí)嗎?
在dubbo調(diào)用過程中被調(diào)用方有兩個(gè)線程池:io線程池,業(yè)務(wù)線程池。
這也是dubbo調(diào)優(yōu)的點(diǎn)。
配置信息:
Dispatcher
all 所有消息都派發(fā)到線程池,包括請(qǐng)求,響應(yīng),連接事件,斷開事件,心跳等。
direct 所有消息都不派發(fā)到線程池,全部在 IO 線程上直接執(zhí)行。
message 只有請(qǐng)求響應(yīng)消息派發(fā)到線程池,其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。
execution 只請(qǐng)求消息派發(fā)到線程池,不含響應(yīng),響應(yīng)和其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。
connection 在 IO 線程上,將連接斷開事件放入隊(duì)列,有序逐個(gè)執(zhí)行,其它消息派發(fā)到線程池。