方法类型 | 抛出异常 | 特殊值 | 阻塞 | 超时 |
---|---|---|---|---|
插入 | add(e) | offer(e) | put(e) | offer(e,time,unit) |
移除 | remove() | poll() | take() | poll(time,unit) |
检查 | element() | peek() | 不可用 | 不可用 |
===================================================================
抛出异常 | 当阻塞队列满时,再往队列里add插入元素会抛出lllegalStateException:Queue full;当阻塞队列为空时,再往队列里remove移除元素会抛出NoSuchElementException |
---|---|
特殊值 | 插入方法,成功为true失败false;移除方法,成功返回出队列的元素,队列里面没有就返回null |
一直阻塞 | 当阻塞队列满时,生产者线程继续往队列里put元素,队列会一直阻塞生成线程直到put数据or响应中断退出。当阻塞队列空时,消费者线程视图从队列中take元素,队列会一直阻塞消费者线程直到队列可用。 |
超时退出 | 当阻塞队列满时,队列会阻塞生产者线程一定时间,超过后限时后生产者线程会退出 |