关注
如图1所示,按不同分类方式可以进行基本的3种分类方式。
(1)如果一个队列已满,此时要插入元素 OR 一个队列已空,此时要提取元素
出现如上情况时,如果阻塞称为阻塞队列(名字中含有Blocking Queue字样,例如ArrayBQ、LinkedBQ、PriorityBQ等,如图2所示),在出现上面情况时会暂时阻塞,直到队列元素不满时再插入(或队列元素不空时再提取);若不阻塞称为非阻塞队列,遇到上面情况时会直接报错;
(2)有界队列和无界队列很好理解,也即是否设置了固定大小。当然实际上无界队列默认最大长度为Integer.MAX_VALUE
(3)按功能分类:
(3-1)普通队列(基本先入先出队列,可用固定长度数组或链表实现)
(3-2)双端队列(可以在头部和尾部同时入队或出队)
(3-3)优先队列(二叉堆实现,优先级高的元素先出队)
(3-4)延迟队列(基于优先队列实现,入队的元素需入队一定时间才能出队,如图3所示)
(3-5)特殊队列(例如SynchronousQueue,每次添加数据后必须等待另一个线程拿走数据之后,才可以继续添加数据)
查看原帖
点赞 评论
相关推荐
01-29 14:38
中原工学院 嵌入式软件工程师 点赞 评论 收藏
分享
01-30 19:08
山东大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
4775次浏览 68人参与
# 找工作的破防时刻 #
251724次浏览 1953人参与
# 程序员找工作至少要刷多少题? #
9488次浏览 147人参与
# 你投递的公司有几家约面了? #
157819次浏览 995人参与
# 论秋招对个人心气的改变 #
5983次浏览 104人参与
# 我的AI电子员工 #
26160次浏览 159人参与
# OPPO求职进展汇总 #
770997次浏览 5396人参与
# 为了减少AI幻觉,你注入过哪些设定? #
1907次浏览 55人参与
# 刚入职的你踩过哪些坑 #
4262次浏览 91人参与
# 程序员能干到多少岁? #
5833次浏览 90人参与
# 一张图晒一下你的AI员工 #
3033次浏览 62人参与
# 牛客AI体验站 #
3444次浏览 91人参与
# 我现在比当时_,你想录用我吗 #
3720次浏览 63人参与
# 想辞职但是不敢的原因 #
20181次浏览 88人参与
# ai智能作图 #
624791次浏览 5627人参与
# AI Coding的使用心得 #
2383次浏览 60人参与
# 关于春招/暑期实习,你想知道哪些信息? #
4027次浏览 84人参与
# 牛客租房专区 #
146779次浏览 1464人参与
# 晒晒你司的新年福利 #
4034次浏览 70人参与
# 虾皮求职进展汇总 #
373472次浏览 2792人参与
