以上是ConcurrentLinkedQueue的源代码.我无法理解一个条件.
条件(p == q)将如何来自offer方法的以下代码段代码
public boolean offer(E e) {
checkNotNull(e);
final Node<E> newNode = new Node<E>(e);
for (Node<E> t = tail, p = t;;) {
Node<E> q = p.next;
if (q == null) {
// p is last node
if (p.casNext(null, newNode)) {
// Successful CAS is the linearization point
// for e to become an element of this queue,
// and for newNode to become "live".
if (p != t) // hop two nodes at a …Run Code Online (Sandbox Code Playgroud)