2011-04-12 2 views

답변

1

예. ArrayBlockingQueue 참조 :

public class ArrayBlockingQueue<E> 
extends AbstractQueue<E> 
implements BlockingQueue<E>, Serializable 

A는 배열에 연동하는 바운드 형식 블로킹 큐. 이 대기열은 요소 FIFO (선입 선출)을 주문합니다. 대기열의 헤드는 큐에있는 가장 긴 시간에 있었던 요소입니다. 대기열의 꼬리 은 이 가장 짧은 시간 대기열에 있었던 요소입니다. 새 요소가 큐의 끝에있는 에 삽입되고 큐 검색 작업은 큐의 헤드 에서 요소를 가져옵니다.

이것은 고정 크기 배열에 요소가 삽입되고 소비자가 을 추출하는 의 고전적인 "경계 버퍼"입니다. 일단 생성되면 용량을 늘릴 수 없습니다. 전체 큐에 요소를 넣으려고하면 넣기 작업은 이됩니다. 빈 큐에서 요소를 검색하려고하면 마찬가지로 블록 이됩니다.

+1

큐가 가득 차면 머리를 제거하고 꼬리에 자동 삽입하는 방법을 사용할 수 있습니까? – user496949

+0

자동 : 아니요. 그러나 당신은'offer()'를 사용할 수 있습니다. 실패하면, 직접 머리를 지우고 다시 시도하십시오. –

관련 문제