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

ArrayBlockingQueue와 ArrayDeque의 차이점

<시간/>

ArrayBlockingQueue는 FIFO 순서로 요소를 저장합니다. 요소의 삽입은 항상 큐의 맨 뒤에서 발생하고 요소의 제거는 항상 큐의 맨 위에서 발생했습니다. 스레드로부터 안전하고 경계 배열 대기열이므로 한 번 생성되면 용량을 변경할 수 없습니다. 블로킹 큐의 구현입니다.

자바 문서에 따라 -

Deque 인터페이스의 크기 조정 가능한 배열 구현입니다. 어레이 데크에는 용량 제한이 없습니다. 그들은 사용을 지원하기 위해 필요에 따라 성장합니다. 스레드로부터 안전하지 않습니다. 외부 동기화가 없는 경우 여러 스레드에 의한 동시 액세스를 지원하지 않습니다. Null 요소는 금지됩니다. 이 클래스는 스택으로 사용할 때 스택보다 빠르며 큐로 사용할 때 LinkedList보다 빠를 수 있습니다.

Sr. 아니요. ArrayBlockingQueue ArrayDeque
1
기본
BlockingQueue 인터페이스를 구현합니다.
Deque 인터페이스를 구현합니다.
2 경계
바운드 배열 큐입니다. 따라서 한 번 생성된 용량은 변경할 수 없습니다.
Deque의 크기를 조정할 수 있는 배열 구현입니다.
3 쓰레드 안전
쓰레드로부터 안전합니다.
쓰레드로부터 안전하지 않습니다.
4

삽입/제거
요소의 삽입은 항상 큐의 맨 뒤에 발생하고 요소의 제거는 항상 큐의 헤드에서 발생합니다.
양단에서 요소 삽입 및 제거를 지원합니다.