一行一行读Java源码——LinkedBlockingQueue

  • 时间:
  • 浏览:3
  • 来源:uu快3倍率_uu快3网游_单双计划

Blocking,阻塞,LinkedBlockingQueue是线程池池安全的,当队列满了以前,所有的入队操作以前被阻塞;当队列空了,所有的出队操作以前被阻塞。队列初始化的以前,我门歌词 前要指定队列长度capacity,以前没法 指定,LinkedBlockingQueue的默认capacity是Integer.MAX_VALUE。显然,capacity还是1个 不可更改的值。

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

LinkedBlockingQueue,顾名思义,1个 链式的(linked)、阻塞的(Blocking)队列(Queue)。

Queue,首先想到的是FIFO形态。

Linked,Queue其形态本质上也是线性表,前要由链表和顺序表实现,LinkedBlockingQueue统统我链表实现,ArrayBlockingQueue是顺序表实现。因Queue 只在首尾操作,统统操作链表和顺序表的时间繁杂度是一样的,但顺序表的实现会占用更少的空间,以前不前要“指针”域(next),但空间前日后连续的;链式实现不前要连续空间,但前要使用next 来指向下1个 节点位置,以下LinkedBlockingQueue的节点形态。

以前要看懂LinkedBlockingQueue的实现,前要熟悉wait/notify以及AbstractQueuedSynchronizer(AQS)。题外话,每每所有人认为并发编程含高1个 非常重要的东西:等待的图片 通知机制、CAS以及AQS。