[contact-form-7 404 "Not Found"]

Fique informado sobre as principais tendências em energias renováveis. Deixe seu e-mail e receba nossos conteúdos.

Sem categoria

blockingqueue 예제

이 섹션에서는 BlockingQueue 및 BlockingQueue 인터페이스의 ArrayBlockingQueue 구현을 사용하는 간단한 예제를 보여 줍니다. 나는 그들이 창조된 것과 같은 순서로 실행되지 않는다고 생각한다. 예를 들어 위의 코드의 첫 번째 실행에서 스레드 5는 스레드 1 간단한 BlockingQueue 예제보다 먼저 실행되었으며, 생산자는 데이터를 생성하고 큐에 넣는 동시에 소비자가 동일한 큐에서 데이터를 가져옵니다. BlockingQueue의 간단한 사용은 하나 이상의 스레드가 일부 “백그라운드” 또는 “처리” 스레드에 작업을 전달하도록 하는 곳입니다. 처리 스레드는 작업을 기다리는 동안 앉아서 한 번에 하나씩 실행합니다. 예를 들어 서버에서 “지연 로깅”을 수행할 수 있습니다. BlockingQueue가 거의 무한한 기간 동안 실행되는 실시간 메시지 큐와 같은 더 큰 서비스에 대해 구현된 몇 가지 예를 더 넣을 수 있습니다. 간단한 파일 인덱싱 엔진을 만드는 BlockingQueue 예제입니다. 생산자는 디렉터리를 크롤링하고 파일 이름을 큐에 넣는 동시에 소비자는 동일한 큐에서 파일 이름을 가져와서 인덱싱합니다. BlockingQueue 구현은 주로 생산자-소비자 큐에 사용되도록 설계되었지만 컬렉션 인터페이스를 추가로 지원합니다.

예를 들어 remove(x)를 사용하여 큐에서 임의의 요소를 제거할 수 있습니다. 그러나 이러한 작업은 일반적으로 매우 효율적으로 수행되지 않으며 큐에 대기 중인 메시지가 취소되는 경우와 같이 가끔씩만 사용하기 위한 것입니다. 이것은 BlockingQueue 인터페이스를 사용하는 방법의 예입니다. 여기에서 이클립스 프로젝트 다운로드: BlockingQueueExample.zip 차단큐는 더 이상 항목이 추가되지 않음을 나타내기 위해 모든 종류의 “닫기” 또는 “종료” 작업을 본질적으로 지원하지 않습니다. 이러한 기능의 요구와 사용은 구현에 따라 달라지는 경향이 있습니다. 예를 들어, 일반적인 전술은 생산자가 소비자가 취할 때 그에 따라 해석되는 특별한 스트림 끝 또는 독 개체를 삽입하는 것입니다. 이 문서의 왼쪽 부분에서는 여러 생산자 스레드와 여러 소비자 스레드가 있는 간단한 프로그램의 예제를 보여 드리겠습니다.