网易首页 > 网易号 > 正文 申请入驻

并发编程ConcurrentLinkedQueue使用示例详解

0
分享至

这篇文章主要为大家介绍了并发编程ConcurrentLinkedQueue使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

ConcurrentLinkedQueue

ConcurrentLinkedQueue是非阻塞线程安全的队列,适用于高并发的场景。是一个基于链接节点的无界线程安全队列,按照 FIFO(先进先出)原则对元素进行排序。队列元素中不可以放置null元素(内部实现的特殊节点除外)

ConcurrentLinkedQueue原理

ConcurrentLinked是由链表结构组成的线程安全的先进先出无界队列。
当多线程要共享访问集合时,ConcurrentLinkedQueue是一个比较好的选择。
不允许插入null元素
支持非阻塞地访问并发安全的队列,不会抛出ConcurrentModifiationException异常。
size方法不是准确的,因为在统计集合的时候,队列可能正在添加元素,导致统计不准。
批量操作addAll、removeAll、retainAll、containsAll、equals和toArray不保证原子性(操作不可分割)
添加元素happen-before其他线程移除元素。

ConcurrentLinkedQueue类继承AbstractQueue抽象类

具有队列的功能;实现了Queue接口,可作为队列使用。

ConcurrentLinkedQueue继承于AbstractQueue。
ConcurrentLinkedQueue内部是通过链表来实现的。同时包含链表的头节点head和尾节点tail。
ConcurrentLinkedQueue按照 FIFO(先进先出)原则对元素进行排序。元素都是从尾部插入到链表,从头部开始返回。
ConcurrentLinkedQueue的链表Node中的next的类型是volatile,而且链表数据item的类型也是volatile。ConcurrentLinkedQueue就是通过volatile来实现多线程对竞争资源的互斥访问的。
其中head节点存放链表第一个item为null的节点,tail则并不是总指向最后一个节点

ConcurrentLinkedQueue操作方法

private transient volatile Node

head;private transient volatile Node

tail;public ConcurrentLinkedQueue() { head = tail = new Node

(null);}

构造函数中,新建了一个“内容为null的节点”,并设置表头head和表尾tail的值为新节点。 head和tail是volatile类型,具有volatile赋予的含义:“即对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入”。

private static class Node

{ volatile E item; volatile Node

next; Node(E item) { UNSAFE.putObject(this, itemOffset, item); }}

Node是单向链表节点,next指向下一个Node,item用于存储数据。Node中操作节点数据的API,是通过Unsafe机制的CAS函数实现的;例如casNext()是通过CAS函数“比较并设置节点的下一个节点”。

1、添加

以add(E e)为例对ConcurrentLinkedQueue中的添加

public boolean add(E e) {
return offer(e);
}

add()实际上是调用的offer()来完成添加操作的;offer(E e)的作用就是将元素e添加到链表的末尾。

2、删除

poll():在链表头部获取并且移除一个元素

poll()的作用就是删除链表的表头节点,并返回被删节点对应的值。

3、peek操作

peek操作是获取链表头部一个元素(只读取不移除)。

  • 原文来自:https://www.jb51.net/article/271033.htm
  • 本文地址:https://www.linuxprobe.com/concurrent-linked-queue.html编辑:倪家兴,审核员:逄增宝
  • Linux命令大全:https://www.linuxcool.com/
  • Linux系统大全:https://www.linuxdown.com/
  • 红帽认证RHCE考试心得:https://www.rhce.net/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
美国再碰中国“逆鳞”,中方忍无可忍,连夜作出“大动作”!

美国再碰中国“逆鳞”,中方忍无可忍,连夜作出“大动作”!

三分亮剑
2024-05-14 10:19:17
多地明确:不再提倡!上海已叫停多年,这个习惯不是“高素质”,经常赶地铁的快看→

多地明确:不再提倡!上海已叫停多年,这个习惯不是“高素质”,经常赶地铁的快看→

北青网-北京青年报
2024-05-15 13:23:13
中美“芯片战”终于达成“共识”:美国不卖了,中国不买了?

中美“芯片战”终于达成“共识”:美国不卖了,中国不买了?

大卫聊科技
2024-05-13 22:30:02
又一房企“爆雷” !曾与碧桂园、恒大等并称“华南五虎”

又一房企“爆雷” !曾与碧桂园、恒大等并称“华南五虎”

北京商报
2024-05-14 16:46:35
这次很严重,100艘菲律宾船强攻黄岩岛:我国26船民兵连夜出动!

这次很严重,100艘菲律宾船强攻黄岩岛:我国26船民兵连夜出动!

青年的背包
2024-05-15 19:11:05
女子卷走60万拆迁款后人间蒸发,警方在15米深的地底找到真相

女子卷走60万拆迁款后人间蒸发,警方在15米深的地底找到真相

重案讲说人
2024-05-14 18:00:09
河南出现10级大风袭扰 气象专家解读强风成因

河南出现10级大风袭扰 气象专家解读强风成因

北青网-北京青年报
2024-05-15 17:43:11
没有止步于14nm! 台积电前高管, 中芯国际能够造出3nm芯片

没有止步于14nm! 台积电前高管, 中芯国际能够造出3nm芯片

龙哥讲娱乐记
2024-05-15 15:48:16
东莞又一工厂宣布停工停产,1000多人将面临失业!相关补偿到位…

东莞又一工厂宣布停工停产,1000多人将面临失业!相关补偿到位…

火山诗话
2024-05-15 05:52:08
河南女子晒婆婆做的晚餐,走红朋友圈,网友:可以当你妯娌吗?

河南女子晒婆婆做的晚餐,走红朋友圈,网友:可以当你妯娌吗?

阿龙美食记
2024-05-14 15:36:26
河南64岁大爷五年间染指55名女性,只因太了解女性心理

河南64岁大爷五年间染指55名女性,只因太了解女性心理

真实故事汇
2024-05-06 13:31:30
哈尔科夫地区的战斗非常激烈:俄军伤亡惨重,一些部队已被打光

哈尔科夫地区的战斗非常激烈:俄军伤亡惨重,一些部队已被打光

探索星空
2024-05-15 13:58:23
拉一分涨停,砸一分跌停,保力新股价0.09,正在演绎最后的绝唱!

拉一分涨停,砸一分跌停,保力新股价0.09,正在演绎最后的绝唱!

惜别的海岸
2024-05-15 14:42:13
汪峰新女友和前夫昔日合照曝光,大量私人生活照公开

汪峰新女友和前夫昔日合照曝光,大量私人生活照公开

素素娱乐
2024-05-15 09:35:50
98年香港金融保卫战:中国动用1200亿对轰,犹太资本从未输这么惨

98年香港金融保卫战:中国动用1200亿对轰,犹太资本从未输这么惨

卡索
2024-05-13 14:58:39
大瓜!具俊晔深夜被赶出家门?提着行李垂头丧气!评论区炸锅了!

大瓜!具俊晔深夜被赶出家门?提着行李垂头丧气!评论区炸锅了!

小娱乐悠悠
2024-05-15 13:21:01
法院判了!沪老太太故意推倒摩托车后死亡,车主被网暴终于有结果

法院判了!沪老太太故意推倒摩托车后死亡,车主被网暴终于有结果

蛙斯基娱乐中
2024-05-15 09:07:48
一位主席、四位元帅帮忙,都不能为粟裕平反,杨尚昆:他不点头

一位主席、四位元帅帮忙,都不能为粟裕平反,杨尚昆:他不点头

今人说古
2024-05-14 19:31:32
解放战争中,如果国民党获得胜利,今天的中国会是什么样

解放战争中,如果国民党获得胜利,今天的中国会是什么样

史诗长歌
2024-05-13 13:34:32
新华社消息|俄罗斯总统普京接受新华社书面专访

新华社消息|俄罗斯总统普京接受新华社书面专访

新华社
2024-05-15 08:28:29
2024-05-15 20:16:49
孙有匪
孙有匪
科技
1595文章数 2009关注度
往期回顾 全部

科技要闻

谷歌回击OpenAI:搜索大改 新品剑指GPT-4o

头条要闻

泽连斯基:鉴于前线局势推迟参加所有国际活动

头条要闻

泽连斯基:鉴于前线局势推迟参加所有国际活动

体育要闻

乔丹-贝尔:CBA外援的另一种用法?

娱乐要闻

欧阳娜娜营销才女人设却没拿到学位?

财经要闻

吴清:把僵尸企业、害群之马坚决清出市场

汽车要闻

无感胜有感 驾驶沃尔沃EX30竟与众不同?

态度原创

游戏
家居
健康
教育
公开课

服务器被关仍坚守:3DS/WiiU还有四位玩家在线

家居要闻

吴家大宅 敛藏人生百味

在中国,到底哪些人在吃“伟哥”?

教育要闻

小学常考平均数问题,七个数平均数是30,前三个数的平均数是28

公开课

父亲年龄越大孩子越不聪明?

无障碍浏览 进入关怀版