美文网首页Java
linkedBlockingQueue的offer方法解读

linkedBlockingQueue的offer方法解读

作者: 悟空嘿 | 来源:发表于2019-03-05 13:49 被阅读0次

    1.无界阻塞队列(严格的讲,应该是Integer.MAX_VALUE的linked队列)

    构造方法

    在构造方法中,使得last和head应用同一个Node节点。在后续的offer中至关重要。

    2.offer方法在加重入锁,是一个线程安全的方法。在finally中释放,避免死锁。AtomicInteger是原子操作,在同时对queue进行offer,tack等操作时计数错误。

    真正操作在enqueue(node)中。

    offer方法

    3.enqueue(node)方法

    加入队列末尾

     last = last.next = node;有两层含义:last= node,last.nete = node;

    分析:1)last.next = newNode,当node的size=1时,n1.next = node,last=newNode

                    size = 2时,n2.next = newNode,last = node

                    …………以此类推,

                    n1->n2->n3->……->newNode;链式结构被确定下来。

    重要的是理解last.next实际上是,指的last指代的对象的next的值,last = node变量的转换。

     很精练的代码,区分对象和引用理解的典型列子。

                

    相关文章

      网友评论

        本文标题:linkedBlockingQueue的offer方法解读

        本文链接:https://www.haomeiwen.com/subject/kmjnuqtx.html