一、進(jìn)程線程簡介
1.?進(jìn)程:一個計(jì)算機(jī)程序的運(yùn)行實(shí)例蒲讯,包含了需要執(zhí)行的指令;有自己的獨(dú)立地址空間灰署,包含程序內(nèi)容和數(shù)據(jù)判帮;不同進(jìn)程的地址空間是互相隔離的;進(jìn)程擁有各種資源和狀態(tài)信息溉箕,包括打開的文件晦墙、子進(jìn)程和信號處理。
2.?線程:表示程序的執(zhí)行流程肴茄,是CPU調(diào)度執(zhí)行的基本單位晌畅;線程有自己的程序計(jì)數(shù)器、寄存器寡痰、堆棧和幀抗楔。同一進(jìn)程中的線程共用相同的地址空間,同時共享進(jìn)進(jìn)程鎖擁有的內(nèi)存和其他資源拦坠。
線程狀態(tài)如下圖1:
圖1
二连躏、實(shí)際業(yè)務(wù)場景
1. 前端展示交付詳情頁,需調(diào)用不同外部系統(tǒng)接口10多個贞滨。
2. 每個外部接口返回不同參數(shù)對象反粥。
3. 順序調(diào)用外部接口會導(dǎo)致大接口響應(yīng)時間較長。
三疲迂、可選方案
1. 提供多個小接口給前端才顿,前端并發(fā)調(diào)用渲染數(shù)據(jù)。(不能超過10個http并發(fā)調(diào)用)
2. 服務(wù)端提供大接口尤蒿,并發(fā)調(diào)用外部系統(tǒng)接口郑气,封裝數(shù)據(jù)返回前端。(響應(yīng)時間依賴外部處理最慢的接口)
* 此場景無需考慮外部接口調(diào)用的有序性腰池。
四尾组、采用服務(wù)端多線程并發(fā)調(diào)用
1. 新建全局靜態(tài)線程池:
2. 新建實(shí)現(xiàn)Callable線程類Thread:
3. 多線程并發(fā)調(diào)用忙芒,處理封裝返回對象