您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 2浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java并发多线程编程——并发容器ConcurrentLinkedQueue

小志的博客 发布时间:2021-06-08 22:40:31 ,浏览量:2

目录
    • 一、ConcurrentLinkedQueue的理解
    • 二、ConcurrentLinkedQueue的类图
    • 三、ConcurrentLinkedQueue类中常用的方法
    • 四、ConcurrentLinkedQueue中常用方法的原理
    • 五、单链表(Linked List)的详细理解

一、ConcurrentLinkedQueue的理解
  • ConcurrentLinkedQueue属于java.util.concurrent包;
  • 要实现一个线程安全的队列有两种实现方式:一种是加锁,这种实现方式就是我们常说的阻塞队列;另一种是使用循环CAS算法实现,这种方式实现队列称之为非阻塞队列;而ConcurrentLinkedQueue就是一种非阻塞队列。
  • ConcurrentLinkedQueue是基于链接节点的无界线程安全队列 。 这个队列排列元素FIFO(先进先出)
  • 下图为jdk1.8API的解释: 在这里插入图片描述
二、ConcurrentLinkedQueue的类图

在这里插入图片描述

  • 由上图可知ConcurrentLinkedQueue实现了Queue接口,Queue继承Collection接口,Collection继承Iterable接口; 在这里插入图片描述
  • 由上图可知ConcurrentLinkedQueue由head节点和tail节点组成。head头结点,负责出列, tail尾节点,负责入列。

在这里插入图片描述

  • 由上图可知每个节点(Node)由节点元素(item)和指向下一个节点的引用(next)组成,节点与节点之间就是通过这个next关联起来,从而组成一张链表结构的队列。
三、ConcurrentLinkedQueue类中常用的方法

1、构造方法

  • public ConcurrentLinkedQueue() 创建一个 ConcurrentLinkedQueue为空的ConcurrentLinkedQueue。
  • public ConcurrentLinkedQueue(Collection
关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0495s