[java] 자바에서 블로킹 큐를 사용하는 방법은?
블로킹 큐는 스레드 간의 안전한 데이터 전달을 위해 사용되는 자료 구조입니다. 자바에서 블로킹 큐를 사용하는 방법은 다음과 같습니다.
- 먼저,
java.util.concurrent
패키지에서BlockingQueue
인터페이스를 import 해야 합니다.
import java.util.concurrent.BlockingQueue;
- 블로킹 큐 객체를 생성합니다.
ArrayBlockingQueue
나LinkedBlockingQueue
등 여러 구현체 중에서 선택할 수 있습니다.
BlockingQueue<String> queue = new ArrayBlockingQueue<>(10);
- 생성한 큐에 데이터를 추가하려면
put()
메서드를 사용합니다. 큐가 가득 차있을 경우, 스레드는 블로킹되어 대기합니다.
queue.put("데이터");
- 큐에서 데이터를 가져오려면
take()
메서드를 사용합니다. 큐가 비어있을 경우, 스레드는 블로킹되어 대기합니다.
String data = queue.take();
- 큐에 데이터가 있는지 여부를 확인하려면
isEmpty()
메서드를 사용합니다.
boolean isEmpty = queue.isEmpty();
- 기타
poll()
,offer()
,peek()
등의 메서드를 사용하여 큐의 기능을 활용할 수 있습니다. 자세한 내용은 자바 API 문서를 참조하시기 바랍니다.
이처럼, 자바에서 블로킹 큐를 사용하여 스레드 간의 안전한 데이터 전달을 구현할 수 있습니다.
[참고 자료]