色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

java并發編程工具類JUC之LinkedBlockingQueue鏈表隊列

瀏覽:16日期:2022-08-11 13:02:53

java并發編程工具類JUC之LinkedBlockingQueue鏈表隊列

java.util.concurrent.LinkedBlockingQueue 是一個基于單向鏈表的、范圍任意的(其實是有界的)、FIFO阻塞隊列。訪問與移除操作是在隊頭進行,添加操作是在隊尾進行,并分別使用不同的鎖進行保護,只有在可能涉及多個節點的操作才同時對兩個鎖進行加鎖。

隊列是否為空、是否已滿仍然是通過元素數量的計數器(count)進行判斷的,由于可以同時在隊頭、隊尾并發地進行訪問、添加操作,所以這個計數器必須是線程安全的,這里使用了一個原子類 AtomicInteger,這就決定了它的容量范圍是: 1 ?Integer.MAX_VALUE。

在之前的文章中已經為大家介紹了java并發編程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue。

LinkedBlockingQueue 隊列是BlockingQueue接口的實現類,所以它具有BlockingQueue接口的一切功能特點。LinkedBlockingQueue隊列 按照first-in-first-out (FIFO)先進先出的方式對元素進行排序。LinkeBlockingQueue 提供了兩種構造函數,一個構造函數構造一個隊列容量為固定個數的隊列,另一個無參構造函數構造一個隊列容量為Integer.MAX_VALUE的隊列.

public LinkedBlockingQueue() { this(Integer.MAX_VALUE);}public LinkedBlockingQueue(int capacity) { if (capacity <= 0) throw new IllegalArgumentException(); this.capacity = capacity; last = head = new Node<E>(null);}ArrayBlockingQueue和LinkedBlockingQueue對比

ArrayBlockingQueue和LinkedBlockingQueue都是實現BlockingQueue接口,所以在使用方式上是一致的,下面我們就不介紹使用方法,而是從二者的性能及底層數據結構的實現角度進行

ArrayBlockingQueue插入和刪除數據,只采用了一個lock鎖,讀取和寫入操作無法并行。 所以在高并發場景下執行效率會比LinkedBlockingQueue慢一些。

java并發編程工具類JUC之LinkedBlockingQueue鏈表隊列

LinkedBlockingQueue采用“two lock queue”算法變體,雙鎖(ReentrantLock):takeLock、putLock,允許讀寫并行,remove(e)和迭代器iterators需要獲取2個鎖。這樣可以降低線程由于線程無法獲取到lock而進入WAITING狀態的可能性,從而提高了線程并發執行的效率。

java并發編程工具類JUC之LinkedBlockingQueue鏈表隊列

ArrayBlockingQueue底層代碼是采用數組實現的,創建的時候必須指定隊列的容量并分配存儲空間;LinkedBlockingQueue采用的是鏈表數據結構實現的,其鏈表節點的存儲空間分配是動態的,新的元素對象加入隊列分配空間,元素對象從隊列取出之后存儲空間GC,初始化時指定的是隊列的最大容量。但是使用鏈表數據結構既是LinkedBlockingQueue優勢也是它的劣勢,高并發場景下由于空間動態分配需要java JVM頻繁的進行垃圾回收。

總體來說在并發場景下,LinkedBlockingQueue的吞吐量比ArrayBlockingQueue更好。但是在java實現高性能隊列的首選是disruptor,它不是JDK自帶的。java程序員非常熟悉的Log4j2底層性能比logback和log4j有了較大的提升,究其原因就是使用了disruptor高性能隊列實現的異步日志

到此這篇關于java并發編程工具類JUC之LinkedBlockingQueue鏈表隊列的文章就介紹到這了,更多相關java LinkedBlockingQueue鏈表隊列內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 2022国产精品网站在线播放 | 国产3级在线 | 精品视频亚洲 | 久久最新免费视频 | 91精品免费国产高清在线 | 欧美xxxxx毛片 | 国产一级视频在线 | 国产aⅴ片 | 综合久久久久久中文字幕 | 一区二区在线欧美日韩中文 | 深爱五月开心网亚洲综合 | 一区二区三区在线播放 | 在线观看日本亚洲一区 | 久久视频精品线视频在线网站 | 成人毛片1024你懂的 | 激情一区二区三区成人 | 国产日韩久久久久69影院 | 久久久久久久久久久大尺度免费视频 | 欧美 亚洲 另类 自拍 在线 | 刺激一区仑乱 | 神马三级我不卡 | 久久影视一区 | 成人免费公开视频 | 午夜毛片不卡高清免费 | 天天摸天天爽视频69视频 | 国产成人精品综合久久久 | 日韩精品一区二区三区在线观看l | 青青热久久国产久精品 | 青草福利在线 | 女人18毛片a级毛片 女人aaaaa片一级一毛片 | 成人午夜爽爽爽免费视频 | 久草手机在线视频 | 欧洲亚洲一区 | 国产成人18黄网站在线观看网站 | 91中文字幕网 | 欧美精品国产精品 | 午夜在线观看视频免费 成人 | 国产欧美一区二区另类精品 | 国产91久久久久久久免费 | 一级毛片子 | 国产精品三级在线观看 |