目录
一、ConcurrentLinkedQueue的理解
- 一、ConcurrentLinkedQueue的理解
- 二、ConcurrentLinkedQueue的类图
- 三、ConcurrentLinkedQueue类中常用的方法
- 四、ConcurrentLinkedQueue中常用方法的原理
- 五、单链表(Linked List)的详细理解
- ConcurrentLinkedQueue属于java.util.concurrent包;
- 要实现一个线程安全的队列有两种实现方式:一种是加锁,这种实现方式就是我们常说的阻塞队列;另一种是使用循环CAS算法实现,这种方式实现队列称之为非阻塞队列;而ConcurrentLinkedQueue就是一种非阻塞队列。
- ConcurrentLinkedQueue是基于链接节点的无界线程安全队列 。 这个队列排列元素FIFO(先进先出)
- 下图为jdk1.8API的解释:
- 由上图可知ConcurrentLinkedQueue实现了Queue接口,Queue继承Collection接口,Collection继承Iterable接口;
- 由上图可知ConcurrentLinkedQueue由head节点和tail节点组成。head头结点,负责出列, tail尾节点,负责入列。
- 由上图可知每个节点(Node)由节点元素(item)和指向下一个节点的引用(next)组成,节点与节点之间就是通过这个next关联起来,从而组成一张链表结构的队列。
1、构造方法
- public ConcurrentLinkedQueue() 创建一个 ConcurrentLinkedQueue为空的ConcurrentLinkedQueue。
- public ConcurrentLinkedQueue(Collection
关注打赏
热门博文
- Netty—— 概念剖析(NIO vs BIO)
- Netty——网络编程 NIO(Selector处理accept事件)代码示例
- CompletableFuture异步编排(多任务组合)
- CompletableFuture异步编排(两任务组合——两个任务必须都完成才触发另一个任务 )
- CompletableFuture异步编排(线程串行化代码示例)
- CompletableFuture异步编排(handle最终处理)
- CompletableFuture异步编排(计算完成回调代码示例)
- hutool工具导出excel代码示例
- CompletableFuture异步编排(开启异步编程代码示例)
- java 获取音频、视频文件时长代码示例