차단 대기열 인터페이스는 Java.util.concurrent 패키지의 일부입니다. 차단 대기열은 생산자 소비자 대기열을 위해 특별히 설계되었으며 수집도 지원합니다. 이 인터페이스는 대기열을 통해 수행할 수 있는 모든 유형의 작업을 지원하기 위해 메서드의 네 부분으로 나뉩니다. null 키를 허용하지 않습니다. ArrayBlockingQueue 및 LinkedBlockingQueue는 모두 차단 대기열 인터페이스를 구현합니다.
ArrayBlockingQueue와 LinkedBlockingQueue는 모두 FIFO 순서로 요소를 저장합니다. 두 대기열 모두에서 요소 삽입은 항상 대기열의 맨 뒤에서 발생하고 요소 제거는 항상 대기열 맨 위에서 발생했습니다.
Sr. 아니요. | 키 | ArrayBlockingQueue | LinkedBlockingQueue |
---|---|---|---|
1 | 기본 | 배열이 지원합니다. | 연결된 목록에 의해 뒷받침됩니다. |
2 | 경계 | 경계 배열 큐입니다. 따라서 한 번 생성된 용량은 변경할 수 없습니다. | 무제한 대기열입니다. |
3 | 처리량 | 연결된 대기열보다 처리량이 낮습니다. | 연결된 대기열은 어레이 기반 대기열보다 처리량이 높습니다. |
4. | 잠금 | 단일 잠금 이중 조건 알고리즘을 사용합니다. | 큐에 요소를 삽입하기 위한 putLock과 큐에서 요소를 제거하기 위한 takeLock이 있습니다. |