- 큐의 용량이 다 찼을 때 task 의 입력을 막는다.
- 큐에 task 가 없을 때 추출을 시도하는 것을 막는다.
- BlockingQueue 의 구현체들은 기본적으로
Thread-safe
하다.
ArrayBlockingQueue
- 일반적인 BlockingQueue 의 구현체
- 객체를 생성한 이후에 크기 변경은 불가능하다.
LinkedBlockingQueue
- Linked list로 구현한 Queue
- 크기를 초과하지 않는 선에서 node 추가 가능
PriorityBlockingQueue
- PriorityQueue 와 같은 정렬방식을 지니는 용량제한이 없는 Queue
- Element 추출에 대해 Block 기능을 제공
- 입력무제한(unbounded)으로 기본 설계가 되었기 때문에 추가작업 수행중 fail이 나면 이것은 자원고갈이 났다는 뜻
SynchronousQueue
- Queue 내부로의 insert 작업이 다른 스레드의 remove 작업과 반드시 동시에 일어나야한다
- 이 queue 는 내부용량을 지니지 않는다
http://oniondev.egloos.com/558949