第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

java 中線程安全的阻塞隊(duì)列是哪個(gè)?

java 中線程安全的阻塞隊(duì)列是哪個(gè)?

阿波羅的戰(zhàn)車 2018-10-03 10:19:37
一個(gè)線程往隊(duì)列里插東西,一個(gè)線程讀東西,當(dāng)隊(duì)列是空的時(shí)候總是輪空,發(fā)現(xiàn)占用了大量的 cpu ,通過 yeild 沒有改善,通過 sleep(1) 就好了,但是這樣影響性能。所以,我想換一個(gè)插入是總是直接成功,但是讀取是阻塞的隊(duì)列。java 里有沒有現(xiàn)成的?
查看完整描述

2 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

現(xiàn)成的不知道有沒有,自己實(shí)現(xiàn)的話可以用信號量。

另外你目前sleep的實(shí)現(xiàn)方式應(yīng)該沒什么問題的,對效率的影響很有限。其實(shí)阻塞在底層實(shí)現(xiàn)是也是sleep的,只不過時(shí)間更短。


查看完整回答
反對 回復(fù) 2018-10-11
?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

java.util.concurrent.LinkedBlockingQueue?樓主可以直接使用這個(gè)隊(duì)列,是線程安全的。

queue.take()?獲取數(shù)據(jù),如果當(dāng)前沒有數(shù)據(jù),則阻塞直到返回可用數(shù)據(jù)
queue.poll()?獲取數(shù)據(jù),如果當(dāng)前沒有數(shù)據(jù),返回null
queue.pool(timeout, TimeUnit)?獲取數(shù)據(jù),如果沒有數(shù)據(jù),阻塞一定的時(shí)間后如果有數(shù)據(jù)直接返回,沒有則返回null


樓主這個(gè)是典型的生產(chǎn)者/消費(fèi)者模式


查看完整回答
反對 回復(fù) 2018-10-11
  • 2 回答
  • 0 關(guān)注
  • 1473 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號