개발/CS

Blocking Queue 블락킹 큐

하프킴 2021. 4. 26. 01:23
728x90

특정 상황에 스레드를 대시하도록 하는 큐. 멀티 스레드 환경에서 사용되는 자료구조.

큐의 상태에 따라 자원의 생성과 소비를 제어할 수 있는 큐.

가득차있거나, 비어있을 경우 예외를 방지하기 위해 각각의 상황에서 큐를 블록킹함.

 

큐에서 원소를 빼려고 시도했는데 큐가 비어있거나, 큐에 원소를 넣으려 했는데 큐에 넣을 수 있는 공간이 없을 때, 디큐/인큐 호출 스레드를 대기하도록 한다. 비어있는 큐에서 원소를 빼려고 시도하는 스레드의 대기 상태는다른 스레드가 이 큐에 원소를 넣을 때까지 지속된다.

 

꽉 찬 큐에 원소를 넣으려고 시도하는 스레드의 대기 상태는 다른 스레드가 큐에서 우너소를 빼거나 큐를 클리어하거나 큐의 공간이 확보될 때 까지 지속된다.