在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。经过这些高效而且线程安全的队列类,为咱们快速搭建高质量的多线程程序带来极大的便利。本文简要介绍下BlockingQueue接口中几个方法的做用及区别。安全
一、add(E e)多线程
在不违反容量限制的状况下,可当即将指定元素插入此队列,成功返回true,当无可用空间时候,返回IllegalStateException异常。线程
二、offer(E e)接口
在不违反容量限制的状况下,可当即将指定元素插入此队列,成功返回true,当无可用空间时候,返回false。队列
三、put(E e)it
直接在队列中插入元素,当无可用空间时候,阻塞等待。io
四、offer(E e, long time, timeunit unit)程序
将给定元素在给定的时间内设置到队列中,若是设置成功返回true, 不然返回false。方法
五、E take()im
获取并移除队列头部的元素,无元素时候阻塞等待。
六、E poll( long time, timeunit unit)
获取并移除队列头部的元素,无元素时候阻塞等待指定时间。