寧夏干部網(wǎng)絡(luò)教育培訓(xùn)學(xué)院小紅書seo排名優(yōu)化
阻塞隊(duì)列
筆記地址
點(diǎn)擊進(jìn)入
隊(duì)列:先進(jìn)先出
限定在一端進(jìn)行插入,一端進(jìn)行刪除
出隊(duì)為隊(duì)頭,入隊(duì)為隊(duì)尾
阻塞隊(duì)列 BlockingQueue
Queue接口繼承Collection接口添加元素:add(),隊(duì)列滿了對拋出異常offer(),隊(duì)列滿了不會拋出異常,返回false,不會拋異常刪除元素:remove(),有元素則返回移除的元素,為空的話則拋出異常poll(),有元素則返回移除的元素,為空的話則返回null獲取隊(duì)首元素:element():拋異常peek():不拋異常
BlockQueue:
多了兩個方法:會進(jìn)行阻塞
put()
take()
線程池
1:如何設(shè)置線程池的核心線程數(shù)和最大線程數(shù)4
我們對線程池負(fù)責(zé)執(zhí)行的任務(wù)分為三種情況:
CPU密集型任務(wù):比如找出1-1000000的素數(shù):理論是CPU核數(shù)+1
IO密集型任務(wù):比如文件io 網(wǎng)絡(luò)io
混合任務(wù)
我們可以按以下公式進(jìn)行【理論】:
線程數(shù) = CPU核心數(shù)*(1+線程等待時間/線程運(yùn)行總時間)
現(xiàn)實(shí)工作中經(jīng)常用壓測的方法來估算
工具:Jmeate、PostApi
2:線程池下
線程池的五種狀態(tài)
running
shutdown:會把隊(duì)列中的任務(wù)處理完
stop:不會處理隊(duì)列中的任務(wù)
tidying:所有的線程停掉之后就會變成這個狀態(tài)
terminated: