在新增的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)
獲取並移除隊列頭部的元素,無元素時候阻塞等待指定時間。