Java高级-JUC-concurrent

队列:

FIFO 先进先出特点

阻塞队列

同步队列

阻塞队列:

java.util.concurrent
Interface BlockingQueue

参数类型
E - 此集合中保存的元素的类型
All Superinterfaces:
Collection , Iterable , Queue
All Known Subinterfaces:
BlockingDeque , TransferQueue
所有已知实现类:
ArrayBlockingQueue , DelayQueue , LinkedBlockingDeque , LinkedBlockingQueue , LinkedTransferQueue , PriorityBlockingQueue , SynchronousQueue


官方解释:

BlockingQueue方法有四种形式,具有不同的操作方式,

不能立即满足,但可能在将来的某个时间点满足:

一个抛出异常,

第二个返回一个特殊值( nullfalse ,具体取决于操作),

第三个程序将无限期地阻止当前线程,直到操作成功为止,

第四个程序块在放弃之前只有给定的最大时限。 这些方法总结在下表中:

Summary of BlockingQueue methods Throws exception Special value Blocks Times out

Insert add(e) offer(e) put(e) offer(e, time, unit)

Remove remove() poll() take() poll(time, unit)

Examine element() peek() not applicable not applicable

个人解释:

四种用法:

1.抛异常

2.返回特殊值 null/false

3.一直阻塞当前线程

4.超时等待

什么时候使用阻塞队列:

多线程并发

线程池

仔细看一下

不能立即满足,但可能在将来的某个时间点满足

先看后面半句话:可能在将来的某个时间点满足

代码测试

---本文结束感谢您的阅读!---