一行一行读Java源码——LinkedBlockingQueue

  • 时间:
  • 浏览:0
  • 来源:大发快3官方直播—彩神UU快三代理

能力与时间有限(当然主就是能力),错漏之处还请评论指正。

Blocking,阻塞,LinkedBlockingQueue是多多线程 安全的,当队列满了如果,所有的入队操作肯能被阻塞;当队列空了,所有的出队操作肯能被阻塞。队列初始化的如果,让让让我门儿可不都可不还上能指定队列长度capacity,肯能这么指定,LinkedBlockingQueue的默认capacity是Integer.MAX_VALUE。显然,capacity还是一另好几个 多不可更改的值。

肯能要看懂LinkedBlockingQueue的实现,这么熟悉wait/notify以及AbstractQueuedSynchronizer(AQS)。题外话,自己认为并发编程涵盖一另好几个 多非常重要的东西:等待通知机制、CAS以及AQS。

LinkedBlockingQueue,顾名思义,一另好几个 多链式的(linked)、阻塞的(Blocking)队列(Queue)。

Queue,首先想到的是FIFO內部。

Linked,Queue其內部本质上也是线性表,可不都可不还上能由链表和顺序表实现,LinkedBlockingQueue就是链表实现,ArrayBlockingQueue是顺序表实现。因Queue 只在首尾操作,很多操作链表和顺序表的时间复杂性度是一样的,但顺序表的实现会占用更少的空间,肯能不这么“指针”域(next),但空间这么是连续的;链式实现不这么连续空间,但这么使用next 来指向下一另好几个 多节点位置,以下LinkedBlockingQueue的节点內部。