队列:第一章:阻塞队列

简介: 队列:第一章:阻塞队列

理论:

阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列,下图展示了如何通过阻塞队列来合作:



线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素

常用的队列主要有以下两种:

(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,DelayQueue就是其中的一种)


   先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能。从某种程度上来说这种队列也体现了一种公平性。


   后进先出(LIFO):后插入队列的元素最先出队列,这种队列优先处理最近发生的事件。  

好处:

接口结构和实现类:

相关文章
|
7月前
|
存储 算法
数据结构与算法:队列
在上篇文章讲解了栈之后,本篇也对这一章进行收尾,来到队列!
数据结构与算法:队列
|
6月前
|
算法 调度 Python
数据结构与算法-队列篇
数据结构与算法-队列篇
38 3
|
7月前
|
机器学习/深度学习 存储 算法
队列——“数据结构与算法”
队列——“数据结构与算法”
|
7月前
|
存储 算法 Java
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
83 0
|
算法 索引 Python
数据结构与算法-(8)---队列(Queue)
数据结构与算法-(8)---队列(Queue)
71 1
|
7月前
|
安全 Java
队列的学习(三) 手写一个阻塞队列
队列的学习(三) 手写一个阻塞队列 本文将介绍如何手写一个阻塞队列。阻塞队列是一种线程安全的队列,当队列为空时,消费者线程将被阻塞直到队列中有元素可供消费;当队列已满时,生产者线程将被阻塞直到队列有空闲位置可供插入元素。
|
算法 前端开发
数据结构与算法(五)队列
数据结构与算法(五)队列
94 0
|
算法 DataX
【数据结构与算法】队列的实现
【数据结构与算法】队列的实现
【数据结构与算法】队列的实现
|
算法 Java
【数据结构与算法】深入理解队列(下)
【数据结构与算法】深入理解队列(下)
142 2
【数据结构与算法】深入理解队列(下)
|
存储 缓存 Java
JUC并发编程学习(十)-阻塞队列、同步队列
JUC并发编程学习(十)-阻塞队列、同步队列
JUC并发编程学习(十)-阻塞队列、同步队列