入队
- put
向队列尾部添加元素,队列已满的时候,阻塞等待。 - offer
- 向队列尾部添加元素,队列已满的时候,直接返回false。
- 如果使用offer(E e, long timeout, TimeUnit unit),传入等待时间,则会在该时间内等待,超时返回false。
出队
- take
如果队列为空,则阻塞,直到被中断或不为空。 - poll
同offer对应 - peek
只查询,不出队,所以不需要阻塞。返回值可空。
其他
- 关于Java线程池ExecutorService中的阻塞队列问题
虽然用的是BlockingQueue,但是往BlockingQueue放任务时,用的是offer(),方法,而不是阻塞的方法put();这样在队列满了之后,继续往队列放任务就会抛异常。