一.关于java.util.concurrent.ArrayBlockingQueue
1.简介:
由数组支持的有界阻塞队列。
这个队列命令元素FIFO(先进先出)。
队列的头是在队列中出现时间最长的元素。
队列的尾部是在队列中出现时间最短的元素。
新元素被插入到队列的尾部,队列检索操作获得队列头部的元素。
这是一个经典的“有界缓冲区”,其中一个固定大小的数组保存生产者插入的元素和消费者提取的元素。
一旦创建,容量就不能更改。
尝试将一个元素放入一个完整的队列将导致操作阻塞;尝试从一个空队列中获取一个元素也将导致类似的阻塞。
此类支持一个可选的公平策略,用于排序等待的生产者线程和使用者线程。
默认情况下,不保证此顺序。
然而,一个公平性设置为true的队列按照FIFO顺序授予线程访问权限。公平性通常会降低吞吐量,但会降低可变性并避免饥饿。
这个类及其迭代器实现了集合和迭代器接口的所有可选方法。
此类是Java集合框架的成员。
2.方法
2.1 offer();
如果可以在不违反容量限制的情况下立即将指定的元素插入此队列,则在成功时返回true,如果当前没有可用空间,则返回false。当使用容量受限的队列时,这种方法通常比add更可取,add只能通过抛出异常来插入元素。