Queue接口与List、Set同一级别,都是继承了Collection接口。队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素,队列以一种先进先出的方式管理数据。
队列分为两种,阻塞队列和非阻塞队列。阻塞队列是如果你试图向一个 已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致消费者线程或者生产者线程阻塞,非阻塞队列是能即时返回结果(消费者),但必须自行编码解决返回为空的情况处理(以及消费重试等问题)。这两种都是线程安全的。
1.阻塞队列BlockingQueue
ArrayBlockingQueue,DelayQueue,LinkedBlockingDeque,LinkedBlockingQueue,LinkedTransferQueue,PriorityBlockingQueue,SynchronousQueue
2.非阻塞队列
ConcurrentLinkedDeque,ConcurrentLinkedQueue
理论上非阻塞队列更高效,但是实际应用中阻塞队列已经可以应付大多数的并发了。
网友评论