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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

blockingqueue java_记录 Java 的 BlockingQueue 中的一些坑

發布時間:2025/3/21 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 blockingqueue java_记录 Java 的 BlockingQueue 中的一些坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學習了?BlockingQueue,發現 java 的 BlockingQueue 并不是每一個實現都按照 BlockingQueue 的語意來的,其中有不少坑。

直接上代碼吧:

1、關于PriorityBlockingQueue,以下代碼運行結果是什么(答案往下拉)?

BlockingQueue queue = new PriorityBlockingQueue<>(2);

queue.put(9);

queue.put(1);

queue.put(8);

System.out.println("queue.size() = " +queue.size());

System.out.println("queue.take() = " +queue.take());

System.out.println("queue = " + queue);

2、關于?SynchronousQueue,以下代碼運行結果是什么(答案往下拉)?

BlockingQueue queue = new SynchronousQueue<>();

System.out.println("queue.offer(1) = " + queue.offer(1));

System.out.println("queue.offer(2) = " + queue.offer(2));

System.out.println("queue.offer(3) = " + queue.offer(3));

System.out.println("queue.size = " +queue.size());

System.out.println("queue.take() = " + queue.take());

3、總體測試,以下代碼運行結果是什么(答案往下拉)?

offer(new ArrayBlockingQueue<>(2));

offer(new LinkedBlockingQueue<>(2));

offer(new PriorityBlockingQueue<>(2));

offer(new SynchronousQueue<>());

private static void offer(BlockingQueue queue) throwsException {

System.out.println("queue.getClass() = " +queue.getClass().getName());

System.out.println("queue.offer(1) = " + queue.offer(1));

System.out.println("queue.offer(2) = " + queue.offer(2));

System.out.println("queue.offer(3) = " + queue.offer(3));

System.out.println("queue.size() = " +queue.size());

System.out.println("queue.take() = " +queue.take());

}

下面公布答案:

1、關于PriorityBlockingQueue 運行結果:

原因:

(1).PriorityBlockingQueue put(Object) 方法不阻塞,內部直接調用 offer(Object) 方法

(2).PriorityBlockingQueue offer(Object) 方法不限制,初始化Queue大小是沒用的

(3).PriorityBlockingQueue 插入對象會做排序,默認參照元素 Comparable 實現,或者顯示地傳遞 Comparator(因為傳入對象是Integer,是默認實現了Comparable的)

2、關于?SynchronousQueue 運行結果

原因:

(1).SynchronousQueue 是無空間,offer 永遠返回 false(2).SynchronousQueue take() 方法會被阻塞,必須被其他線程顯示地調用 put(Object)

如果第1題、第2題你的回答都有問題,那么總結一下,再看第3題的答案吧

3、總體測試,運行結果

總體而言,BlockingQueue 最讓人想不到的就是?PriorityBlockingQueue 和?SynchronousQueue 了。

總結一下:

(1)ArrayBlockingQueue:是一個基于數組結構的有界阻塞隊列,FIFO(先進先出)。

(2)LinkedBlockingQueue:一個基于鏈表結構的阻塞隊列,此隊列按FIFO (先進先出) 排序元素,吞吐量通常要高于ArrayBlockingQueue,靜態工廠方法 Executors.newFixedThreadPool() 使用了這個隊列。

(3)SynchronousQueue:一個不存儲元素的阻塞隊列。每個插入操作必須等到另一個線程調用移除操作,否則插入操作一直處于阻塞狀態,吞吐量通常要高于LinkedBlockingQueue,靜態工廠方法 Executors.newCachedThreadPool() 使用了這個隊列。

(4)PriorityBlockingQueue:一個具有優先級的無限阻塞隊列。

本文有參考小馬哥的講課。

總結

以上是生活随笔為你收集整理的blockingqueue java_记录 Java 的 BlockingQueue 中的一些坑的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本美女三级 | 国产制服丝袜 | 肌肉猛男裸体gay网站免费 | 熟妇高潮一区二区三区在线播放 | 91狠狠爱| 欧美夫妻性生活视频 | 99热9| 黄色在线观看视频 | 亚洲 欧美 日韩 在线 | 日韩av二区 | 亚洲视频五区 | 青娱乐在线免费观看 | 日韩毛片一区二区三区 | 中文字幕永久视频 | 九九热re | 久久久久久婷婷 | 日本高清视频一区二区 | 精品久久久久久久久久岛国gif | av成人毛片 | 婷婷九月综合 | 日韩欧美在线观看一区二区三区 | 午夜精品一区二区三区在线播放 | 欧美美女视频 | 中文字幕永久视频 | 免费麻豆国产一区二区三区四区 | 97涩涩网| 美女国产在线 | youjizz视频| 日韩欧美黄色大片 | 成人欧美一级特黄 | 欧美大片高清 | av福利在线 | 黑人和白人做爰 | 黄色一级播放 | 欧美日韩色图片 | 成人a网站| 国产麻豆一级片 | 另类ts人妖一区二区三区 | 男女瑟瑟视频 | 亚洲欧美天堂 | aa黄色大片| 18成人免费观看视频 | 日韩二区在线观看 | 久久精品国产精品亚洲色婷婷 | 福利一区二区在线 | 亚洲欧美综合一区 | 182tv福利视频 | 久久精工是国产品牌吗 | 精品人妻一区二区色欲产成人 | 91麻豆蜜桃一区二区三区 | 99久久久国产精品无码网爆 | 亚洲蜜桃精久久久久久久久久久久 | 美女黄色一级 | 国产精品va无码一区二区 | 无码一区二区三区免费视频 | 久久久久久99精品久久久 | 欧美特黄一区二区三区 | 啪啪av网站 | 黄色va | 亚洲欧美www | 成年网站在线播放 | 久久精品1 | 久久成人综合 | 阿v视频免费在线观看 | 久草热播 | www视频免费在线观看 | 五月天三级 | 国产在线播放一区二区三区 | 男人天堂a在线 | 黑人操日本女人视频 | 亚洲av无码国产精品久久不卡 | 日本人性爱视频 | 动漫美女靠逼 | 欧美色综合天天久久综合精品 | 狠狠插综合 | 韩国色网 | 欧美三级在线看 | 国产精品久久亚洲 | sao虎视频在线精品永久 | 黄色高清在线观看 | yy4138理论片动漫理论片 | 色视频综合 | 台湾佬中文在线 | 国产中文字幕在线播放 | 五月天久久综合 | 一区二区国产欧美 | 骚虎视频在线观看 | 日韩欧美有码 | 欧美精品在线视频观看 | 日本真人做爰免费视频120秒 | 日本在线视频观看 | 欧美女优在线观看 | 蜜臀在线播放 | 伊人亚洲综合 | 性按摩玩人妻hd中文字幕 | 欧美一区二区三区成人精品 | 韩国精品在线 | 少妇伦子伦精品无吗 | 日韩av在线免费 |