Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

ArrayBlockingQueue와 LinkedBlockingQueue의 차이점

<시간/>

차단 대기열 인터페이스는 Java.util.concurrent 패키지의 일부입니다. 차단 대기열은 생산자 소비자 대기열을 위해 특별히 설계되었으며 수집도 지원합니다. 이 인터페이스는 대기열을 통해 수행할 수 있는 모든 유형의 작업을 지원하기 위해 메서드의 네 부분으로 나뉩니다. null 키를 허용하지 않습니다. ArrayBlockingQueue 및 LinkedBlockingQueue는 모두 차단 대기열 인터페이스를 구현합니다.

ArrayBlockingQueue와 LinkedBlockingQueue는 모두 FIFO 순서로 요소를 저장합니다. 두 대기열 모두에서 요소 삽입은 항상 대기열의 맨 뒤에서 발생하고 요소 제거는 항상 대기열 맨 위에서 발생했습니다.

Sr. 아니요. ArrayBlockingQueue LinkedBlockingQueue
1
기본
배열이 지원합니다.
연결된 목록에 의해 뒷받침됩니다.
2
경계
경계 배열 큐입니다. 따라서 한 번 생성된 용량은 변경할 수 없습니다.
무제한 대기열입니다.
3
처리량
연결된 대기열보다 처리량이 낮습니다.
연결된 대기열은 어레이 기반 대기열보다 처리량이 높습니다.
4.
잠금
단일 잠금 이중 조건 알고리즘을 사용합니다.
큐에 요소를 삽입하기 위한 putLock과 큐에서 요소를 제거하기 위한 takeLock이 있습니다.