ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LinkedBlockingQueue
    JAVA 2019. 5. 10. 17:31
    반응형

    LinkedBlockingQueue

    The optional capacity bound constructor argument serves as a way to prevent excessive queue expansion. The capacity, if unspecified, is equal to Integer.MAX_VALUE.

    LinkedBlockingQueue 은 이름에서도 알 수 있듯이 각각의 블로킹 큐가 링크드 노드로 연결된 큐이다. 큐에서 꺼내갈 원소가 없을 경우 해당 쓰레드는 wait 상태에 들어간다. 따라서, LinkedBlockingQueue는 생산자가 많고 하나의 소비자일 경우에 사용하면 좋다. 또한 이 글의 서두에서 언급한 것처럼, LinkedBlockingQueue은 큐의 폭발을 막기 위해 생성자에 큐의 사이즈(ex : capacity 10)를 명시할 수 있도록 설계되었다.

    LinkedBlockingQueue 내에 있는 데이터를 가져오기 retrieve 위해 poll()과 take() 메소드를 제공한다. 이 두 메소드의 차이점은 큐가 비어있을 때, poll 메소드는 null을 리턴하거나 Timeout을 설정할 수 있는 반면에, take 메소드는 꺼낼 수 있는 원소가 있을 때까지 기다린다(waiting).

     

    아래 이미지는 LinkedBlockingQueue<List> 예제이다. 

     

     

    LinkedBlockingQueue

    반응형

    'JAVA' 카테고리의 다른 글

    JAVA 은닉화 ( encapsulation ) : 캡슐화  (0) 2020.01.02
    JAVA 디자인 팩토리 패턴  (0) 2019.12.30
    자바7 try-with-resources문  (0) 2019.05.10
    IntelliJ 단축키  (0) 2019.04.08
    JAVA Get,Set 메소드 정리  (0) 2019.04.08
Designed by Tistory.