[CS/운영체제] 멀티스레드와 동시성 - 17부

황제연·2025년 7월 10일
0

CS학습

목록 보기
131/193
post-thumbnail

BlockingQueue

BoundedQueue는 생산자 소비자 문제 또는 한정된 버퍼라고 알려진 문제를 효율적으로
해결할 수 있는 자료구조입니다
ReentrantLock과 Condition이라는 스레드 대기공간을 제공해서 생산자와 소비자 스레드를 위한
전용대기 공간을 만들고,
각각에 대해 signal을 통해 각 행동의 결과에 대해 원하는 스레드에게 알릴 수 있습니다

이러한 기능을 자바에서 라이브러리로 제공하는데, 그것이 바로 BlockingQueue입니다
java.util.concurrent.BlockingQueu라는 인터페이스와 구현체들을 제공합니다

이것을 스레드 관점에서 보면 다음 두가지 작업을 진행합니다

데이터 추가 차단

큐가 가득 차면 데이터 추가 작업(put())을 시도하는 스레드는 공간이 생길 때까지 차단됩니다

데이터 획득 차단

큐가 비어 있으면 획득 작업을 시도하는 스레드는 큐에 데이터가 들어올 때까지 차단합니다

참고

  • 김영한의 실전 자바 - 고급 1편
profile
Software Developer

0개의 댓글