개발/CS

Blocking Queue 블락킹 큐

728x90

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

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

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

 

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

 

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

 

 

'개발 > CS' 카테고리의 다른 글

컨텍스트 스위칭시 일어나는일  (0) 2021.05.14
C10K부터 Event-Driven까지  (1) 2021.05.13
부동소수점이란  (0) 2021.05.08
상속과 조합  (0) 2021.05.08
스레드풀이란  (0) 2021.04.15