概述
queue/deque非并發(fā)容器意義不大蔬充,因為queue在工程實踐中天生就是多個線程操作的,只有并發(fā)的queue才會被大量使用屋谭,例如在多線程任務(wù)執(zhí)行框架excutors中,就大量使用了LinkedBlockingQueue等.
非并發(fā)容器框架如下:
javaqueue.png
queue和deque
queue是單項隊列一忱,改接口定義如下:
queue.png
add()方法增加一個元素到隊列尾听皿,如果容器已經(jīng)滿了拋出一個異常,offer()方法增加一個元素到隊列尾部静檬,如果容器滿了炭懊,返回false, offer方法更加友好。
deque是雙向隊列拂檩,可以從隊列頭部增加和刪除元素侮腹,也可以從隊列尾部增加和刪除元素,其定義如下:
deque.png