在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 多線程業(yè)務(wù)處理邏輯

多線程業(yè)務(wù)處理邏輯

1、springboot項(xiàng)目,post請(qǐng)求接口里面有一個(gè)
new Thread(new Runnable(){

//業(yè)務(wù)邏輯

})
意思就是前端每次請(qǐng)求接口都會(huì)開啟一個(gè)線程進(jìn)行業(yè)務(wù)邏輯處理。這樣處理是因?yàn)榫€程里面的業(yè)務(wù)處理很耗時(shí)間(基本在半個(gè)小時(shí)左右),由于體驗(yàn)不允許一致卡住,所以在開啟線程進(jìn)行業(yè)務(wù)處理,接口返回一個(gè)標(biāo)識(shí),前端可以通過(guò)標(biāo)識(shí)再另外的接口中進(jìn)行業(yè)務(wù)中線程執(zhí)行的百分比進(jìn)行查看,線程業(yè)務(wù)邏輯里面有執(zhí)行的階段進(jìn)行更新在數(shù)據(jù)庫(kù)中,空另外一個(gè)接口進(jìn)行查詢。
2、線程里面的業(yè)務(wù)沒有類似
while(true){}
相關(guān)的語(yǔ)句,因?yàn)閳?zhí)行業(yè)務(wù)中處理的業(yè)務(wù)和查詢耗時(shí),執(zhí)行完成線程就結(jié)束。
3、目前的問(wèn)題是前端如果并發(fā)請(qǐng)求(30次),之后在請(qǐng)求接口將無(wú)響應(yīng),重啟正常
4、我自己大致知道應(yīng)該為線程中內(nèi)存沒有釋放,但是不知道怎么進(jìn)行優(yōu)化
5、主要想問(wèn)的是對(duì)于這種處理耗時(shí)的請(qǐng)求應(yīng)該怎么處理相對(duì)較好;讓后對(duì)于線程的內(nèi)存處理應(yīng)該怎么處理和釋放。

回答
編輯回答
陌如玉

如樓上所說(shuō),可以用線程池處理。并用future來(lái)處理返回結(jié)果。
如果要高級(jí)一點(diǎn)的話。就使用消息中間件。實(shí)現(xiàn)請(qǐng)求異步。削鋒填谷

2018年2月25日 16:52
編輯回答
萌面人

用線程池吧,另外要判斷任務(wù)是否邏輯上重復(fù),重復(fù)的話要忽略后續(xù)請(qǐng)求

2018年5月5日 19:27
編輯回答
舊城人

通常來(lái)說(shuō)需要線程池,現(xiàn)在的情況每來(lái)一個(gè)請(qǐng)求就會(huì)額外創(chuàng)建一個(gè)線程,創(chuàng)建線程的系統(tǒng)開銷很大。

如果是耗時(shí)任務(wù)建議通過(guò)隊(duì)列解耦和異步提高吞吐量??梢詤⒖歼@篇:

https://crossoverjie.top/%2F2...

2018年9月23日 03:15