LinkedBlockingQueue是一种无界的阻塞队列,该队列内的对象实现FIFO(先进先出的)的方式,该队列是线程安全的。在初始化该队列的时候可以指定队列的大小也可以不指定队列的大小,默认是Integer.MAX。该队列底层实现方式是链表结构,链表的一端插入对象,当队列的容量达到上限的时候则进行阻塞,而链表的另外一端则向外取出元素,当队列内元素为空的时候,则这一端也发生阻塞,该队列在两端分别独立加锁控制,可以保障并发操作下,可以高效的执行。
LinkedBlockingQueue<String> l = new LinkedBlockingQueue<String>();
l.offer("a");
l.offer("b");
l.offer("c");
l.offer("d");
l.add("e");
System.out.println(l.size());
for (Iterator iterator = l.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println("====>"+string);
}