Java容器--Queue
ConcurrentLinkedQueue
参考
https://www.cnblogs.com/leesf456/p/5539142.html
ConcurerntLinkedQueue一个基于链接节点的无界线程安全队列。
此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部是队列中时间最长的元素,队列的尾部 是队列中时间最短的元素。
新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。
当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQueue是一个恰当的选择。
此队列不允许使用null元素。
主要成员变量
辅助指向队列头部和尾部,因为其并不是严格的指向队列的开始和末尾。
CAS所需的UNSAFE对象和head,tail对应的offset(执行CAS时需要的head和tail的字段偏移)
初步认识UNSAFE: https://huangyunbin.iteye.com/blog/1942369
数据载体
ConcurrentLinkedQueue的结点是用定义在其内部的Node类来表示的。
基本的与一般的链表定义相当,表示数据的item和指向下一个结点的next。
构造方法
默认构造方法
创建一个空结点,head和tail都指向这个空结点。
插入结点 add / offer
add方法直接调用offer方法
Java容器--Queue的更多相关文章
- Java容器:Stack,Queue,PriorityQueue和BlockingQueue
Stack Queue PriorityQueue BlockingQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue ...
- Java 容器源码分析之Queue
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- 【Java心得总结六】Java容器中——Collection
在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...
- 【Java心得总结五】Java容器上——容器初探
在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...
- Java - 容器详解
一.ArrayList 长度可变数组,类似于c++ STL中的vector. 元素以线性方式连续存储,内部允许存放重复元素. 允许对元素进行随机的快速访问,但是向ArrayList中插入和删除元素的速 ...
- java容器---集合总结
思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...
- 3)Java容器
3)Java容器 Java的集合框架核心主要有三种:List.Set和Map.这里的 Collection.List.Set和Map都是接口(Interface). List lst = new ...
- JAVA容器
JAVA容器 一.容器体系结构 java.util 二.迭代器Iterator<E> 迭代器是一种设计模式,可以遍历并选择序列中的对象,而开发人员并不需要了解该序列的底层结构.迭代器通常被 ...
- Java 容器相关知识全面总结
Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题.因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAda ...
随机推荐
- 「Luogu P5494 【模板】线段树分裂」
(因为没有认证,所以这道题就由Froggy上传) 线段树分裂用到的地方确实并不多,luogu上以前也没有这道模板题,所以就出了一道,实在是想不出怎么出模板了,所以这道题可能可以用一些其他的算法水过去. ...
- 基本使用-ElasticSearch
基本使用-ElasticSearch 说明:本篇文章主要是通过springboot整合es的基本使用基础,详细了解的可以看我上一篇文章:全文搜索-ElasticSearch 有朋友私信我上一篇没有环境 ...
- Lightroom中几个重要名词术语的解释
Lightroom是照片管理.处理.发布的综合性智能软件,里面有几个重要的专有技术名词,通过我的理解做一个总结: 一.目录(Catalog) 就是Lightroom的数据库,会把用户的照片的信息.照片 ...
- 在WAMP环境下搭建ZendDebugger php调试工具的方法
东西不是新货,所以介绍就不做介绍了,下面主要是配置流程. 首先,下载ZendDebugger,下载链接:http://downloads.zend.com/pdt/server-debugger/,因 ...
- MyBatis插入时获取自增长主键
在某些场景下,我们需要使用mybatis返回生成的主键值.Mybatis在insert和update标签中就提供了这种功能. 方法1: <insert id=”indetifyId” useGe ...
- 子组件props接受父组件传递的值 能修改吗?
vue2.0 子组件props接受父组件传递的值,能不能修改的问题整理 父组件代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- ASC码速记
ASCII表规则记忆 我们仅仅要记住了一个字母或数字的 ASCII 码 (比如记住 A 为 65 , 0 的 ASCII 码为 48 ), 知道对应的大写和小写字母之间差 32. 0 -- 32 按键 ...
- Linux学习计划中遇到的问题记录
随时更新 Linux安装到网络联通遇到的问题及解决办法 1.命令区分大小写 2..网络连通 ping本地 地址遇到问题 解决办法: https://blog.csdn.net/qq_42074075/ ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:pvuv统计案例理论
实验目的 复习pv.uv的概念和原理 了解pv.uv的实际意义和获取方法 实验原理 前面我们已经基于mapreduce进行数据的etl处理,实验有很多不足之处,这次实验我们是基于url数据进行pv和u ...
- 【剑指Offer面试编程题】题目1523:从上往下打印二叉树--九度OJ
题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, ...