zoukankan      html  css  js  c++  java
  • 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方法

  • 相关阅读:
    第九周学习报告
    人月神话阅读笔记02
    数组 分步 详细
    第八周学习总结
    课堂练习
    学习进度报告09
    用户模板和用户场景
    学习进度报告08
    课堂随笔
    学习进度报告07
  • 原文地址:https://www.cnblogs.com/microcat/p/11144848.html
Copyright © 2011-2022 走看看