初学者java入门基础知识 java双端队列原理( 五 )

以上程序支持多生产者 , 执行的结果如下:

生产者1 , 消息编号:1 发送时间:2019-6-12 20:38:37 延迟:2 秒 |执行时间:2019-6-12 20:38:39 生产者2 , 消息编号:2 发送时间:2019-6-12 20:38:37 延迟:2 秒 |执行时间:2019-6-12 20:38:39 生产者1 , 消息编号:3 发送时间:2019-6-12 20:38:41 延迟:4 秒 |执行时间:2019-6-12 20:38:45 生产者1 , 消息编号:5 发送时间:2019-6-12 20:38:43 延迟:2 秒 |执行时间:2019-6-12 20:38:45 ……
总结队列(Queue)按照是否阻塞可分为:阻塞队列 BlockingQueue 和 非阻塞队列 。其中 , 双端队列 Deque 也属于非阻塞队列 , 双端队列除了拥有队列的先进先出的方法之外 , 还拥有自己独有的方法 , 如 addFirst()、addLast()、getFirst()、getLast() 等 , 支持首未插入和删除元素 。队列中比较常用的两个队列还有 PriorityQueue(优先级队列)和 DelayQueue(延迟队列) , 可使用延迟队列来实现延迟消息队列 , 这也是面试中比较常考的问题之一 。需要面试朋友对延迟队列一定要做到心中有数 , 动手写一个消息队列也是非常有必要的 。

推荐阅读