, offer(e,time) put , poll(time) take()
我也来说一说Java的7个阻塞队列
有界: 在创建队列时必须或允许指定队列大小, 允许调用抛出异常的 add 方法
无界...: 在创建队列时无需或不可以指定队列大小, 无限制的插入 add = offer 操作
阻塞队列的几个操作方法
抛出异常 特殊值 阻塞 超时
插入 add(e) offer(e) put(e) offer...add 方法在队列容量达到最大值时抛出异常 throw new IllegalStateException("Deque full");
队列为空时获取元素时
element/getFirst/getLast...方法在队列为空时抛出异常 if (x == null) throw new NoSuchElementException();
总结:
如果创建队列时不指定队列大小, 默认值为 int 最大值
吞吐量要比..., 堆结构, 二叉堆, 堆排序, 选择排序…
总结:
如果创建队列时不指定队列大小, 默认值为 11, 超出时不会阻塞而是扩容(当扩容超过 int 最大值 - 8 时将抛出堆内存溢出异常) 每次扩容为当前队列大小的