日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阻塞队列,来写生产者消费者,生产一个消费一个

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阻塞队列,来写生产者消费者,生产一个消费一个 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用阻塞隊列來寫,就不需要程序員來關心什么時候阻塞線程await,什么時候喚醒線程notify()。

類似消息中間件

package JUC;import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger;/*** 3.0版生產者消費者(不用程序員控制,用阻塞隊列)*/ class MyResource{private volatile boolean FLAG = true; //默認打開,進行生產+消費private AtomicInteger atomicInteger = new AtomicInteger(1);//BlockingQueue如果要適配所有類的話,要傳接口,不能傳類BlockingQueue<String> blockingQueue = null;public MyResource(BlockingQueue<String> blockingQueue) {this.blockingQueue = blockingQueue;System.out.println(blockingQueue.getClass().getName()); //顯示傳的什么類}public void myProducer() throws Exception{String data = null;boolean retValue;while(FLAG){data = atomicInteger.getAndIncrement()+"";retValue = blockingQueue.offer(data,2L, TimeUnit.SECONDS);if (retValue){System.out.println(Thread.currentThread().getName()+"\t 插入隊列"+data+"成功");}else {System.out.println(Thread.currentThread().getName()+"\t 插入隊列"+data+"失敗");}TimeUnit.SECONDS.sleep(1);}System.out.println(Thread.currentThread().getName()+"\t大老板叫停,表示FLAG=false,生產動作結束");}public void myConsumer() throws Exception{String result = null;while (FLAG){result = blockingQueue.poll(2L,TimeUnit.SECONDS);if (result == null || result.equalsIgnoreCase("")){FLAG = false;System.out.println(Thread.currentThread().getName()+"\t超過2秒鐘沒有取到蛋糕,消費退出");return;}System.out.println(Thread.currentThread().getName()+"\t消費隊列"+result+"成功");}}public void stop() throws Exception{this.FLAG = false;} } public class ProdConsumer_BlockQueueDemo {public static void main(String[] args) {MyResource myResource = new MyResource(new ArrayBlockingQueue<>(3));new Thread(()->{System.out.println(Thread.currentThread().getName()+"\t生產線程啟動");try {myResource.myProducer();} catch (Exception e) {e.printStackTrace();}},"producer").start();new Thread(()->{System.out.println(Thread.currentThread().getName()+"\t消費線程啟動");System.out.println();System.out.println();try {myResource.myConsumer();System.out.println();System.out.println();} catch (Exception e) {e.printStackTrace();}},"consumer").start();try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}System.out.println();System.out.println();System.out.println("5秒鐘時間到,大老板main線程叫停,游戲結束!");try {myResource.stop();} catch (Exception e) {e.printStackTrace();}} }

總結

以上是生活随笔為你收集整理的阻塞队列,来写生产者消费者,生产一个消费一个的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品资源在线观看 | 国产女主播在线播放 | 国产美女菊爆在线播放APP | 亚洲三区精品 | 苍井空张开腿实干12次 | 可以免费看av | 欧美xxxⅹ性欧美大片 | 国产色婷婷一区二区三区竹菊影视 | 日韩欧美视频一区 | 五月婷婷婷婷 | 日韩欧美高清视频 | 黄频在线观看 | 欧美色欧美色 | 激情黄色小视频 | 日韩一级片av | 夜色导航 | 96精品视频| 福利第一页 | 神马午夜影院 | 受虐m奴xxx在线观看 | 欧美性视频在线 | 黄色福利在线观看 | 欧美视频免费看欧美视频 | 91精品婷婷国产综合久久蝌蚪 | 成人动漫一区二区 | 成年网站在线播放 | 不卡av网| 春色伊人 | 特级西西www444人体聚色 | 六月天婷婷 | 日韩avv| 色综合久久av | 亚洲三级视频在线观看 | 亚洲一区二区三区免费观看 | 超碰在线观看av | 九九热在线精品视频 | 国产女人18水真多毛片18精品 | 国产精久久久久 | 色xxxxxx| 嫩草嫩草嫩草嫩草 | 免费观看黄一级视频 | 日韩精品一区二区三区不卡在线 | av色片 | 久久伊人免费 | 真实乱视频国产免费观看 | 欧美456| 国产电影一区二区三区爱妃记 | 麻豆私人影院 | 热九九精品 | 精品在线二区 | 亚洲九九精品 | 我的好妈妈在线观看 | 大尺度摸揉捏胸床戏视频 | 日本午夜免费福利视频 | 欧美黄色小说 | 天天操天天操天天操天天 | 国产综合精品久久久久成人影 | 亚洲国产成人精品激情在线 | 亚洲欧洲精品一区二区 | 午夜啪啪福利 | 日日干狠狠干 | 无码人妻精品一区二区三区99v | 中国国产黄色片 | 成人性生交视频免费观看 | 日韩欧美一 | 污污网站在线看 | 伊人网站在线观看 | 夜夜撸网站 | 中文乱码人妻一区二区三区视频 | 激情五月色综合国产精品 | 精人妻一区二区三区 | 日本另类视频 | 午夜三级在线 | 日本三级播放 | 韩国三级久久 | 国产伦精品一区二区三区四区免费 | 久久精品视频播放 | www日本在线观看 | 日韩精品一区二区三区不卡在线 | 粉嫩aⅴ一区二区三区四区五区 | 亚洲最大福利网站 | 国产在线观看一区 | 国产肉体xxxx裸体784大胆 | 五月婷婷丁香久久 | 免费观看的av网站 | 四虎在线看片 | 北条麻妃一区二区三区免费 | 日韩精品在线不卡 | 国产激情文学 | chinese麻豆新拍video | 黄色骚视频 | 精品久久久无码中文字幕边打电话 | 欧美性猛交xx | 色.com| 亚洲AV无码成人精品国产一区 | 色婷婷亚洲综合 | 永久免费汤不热视频 | 日韩在线观看视频一区二区 | 久久黄色av|