看了半天,终于明白了队列为空为什么要调用 updateHead(h, p) 作者标注的poll方法 注释7;
之前一直认为是画社添足 p == h 调用这个方法感觉没啥用。实际上 h != p的情况是当前head节点是无效节点,p指针会向后移动。而移动后的节点已经被删除item == null的情况。此时更新head节点是有效操作。 peek()方法里面调用的updateHead(h, p)与之类似。
ConcurrentLinkedQueue 源码分析 (基于Java 8)ConcurrentLinkedQueue 通过名字大家就可以知道, 这是一个通过链表实现的并发安全的队列, 它应该是java中并发环境下性能最好的队列, 为什么呢? 因为它...