線程池隊(duì)列滿了怎么辦 dubbo線程池滿了會(huì)超時(shí)嗎?
dubbo線程池滿了會(huì)超時(shí)嗎?在dubbo調(diào)用過程中被調(diào)用方有兩個(gè)線程池:io線程池,業(yè)務(wù)線程池。這也是dubbo調(diào)優(yōu)的點(diǎn)。配置信息:Dispatcherall 所有消息都派發(fā)到線程池,包括請(qǐng)求,響應(yīng)
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ā)到線程池。
線程池處理流程是什么?
提交任務(wù)后,線程池先判斷線程數(shù)是否達(dá)到了核心線程數(shù)(corePoolSize)。如果未達(dá)到線程數(shù),則創(chuàng)建核心線程處理任務(wù);否則,就執(zhí)行下一步;
接著線程池判斷任務(wù)隊(duì)列是否滿了。如果沒滿,則將任務(wù)添加到任務(wù)隊(duì)列中;否則,執(zhí)行下一步;
接著因?yàn)槿蝿?wù)隊(duì)列滿了,線程池就判斷線程數(shù)是否達(dá)到了最大線程數(shù)。如果未達(dá)到,則創(chuàng)建非核心線程處理任務(wù);否則,就執(zhí)行飽和策略,默認(rèn)會(huì)拋出RejectedExecutionException異常。
搞Java的年薪40W是什么水平?
這種一看就是培訓(xùn)機(jī)構(gòu)跟你說的吧?具體年薪多少,那不是廣告宣傳說說就可以的,還得看你學(xué)完以后到底去的是哪個(gè)城市,什么類型的公司。一般的培訓(xùn)機(jī)構(gòu)都會(huì)把某一項(xiàng)技能夸的特別牛,事實(shí)卻可能是———然并卵
線程池的五個(gè)參數(shù)?
corePollSize:核心線程數(shù)。
maximumPoolSize:最大線程數(shù)。
keepAliveTime:空閑的線程保留的時(shí)間。
TimeUnit:空閑線程的保留時(shí)間單位。
BlockingQueue<Runnable>:阻塞隊(duì)列,存儲(chǔ)等待執(zhí)行的任務(wù)。
ThreadFactory:線程工廠,用來創(chuàng)建線程。
RejectedExecutionHandler:隊(duì)列已滿,而且任務(wù)量大于最大線程的異常處理策略。