ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部;当我们获取一个元素时,它会返回队列头部的元素。

ConcurrentLinkedQueue由head节点和tail节点组成,初始时,head节点为空,tail节点等于head节点。

tail并不总是尾结点:更新tail节点的时候,如果tail节点的next节点不为空,则将入队节点设置成tail节点;如果tail节点为空,则将入队节点设置成tail的next节点。因此tail节点并不总是尾节点。

入队列就是将入队节点添加到队列尾部

入队方法永远返回true,所以不要通过返回值判断入队是否成功。

出队列并不是每次都更新head节点,当head节点里有元素时,直接弹出head节点里的元素,而不会更新head节点。只有当head节点里没有元素时,出队操作才会更新节点。

posted on 2017-12-12 21:29  飞奔的菜鸟  阅读(249)  评论(0编辑  收藏  举报