순환 FIFO 버퍼가 필요합니다 (큐가 가득 차면 항상 가장 가치있는 항목을 제거하십시오). 차단 대기열을 사용하여 구현할 수 있습니까?순환 버퍼를 구현하기 위해 blockingqueue를 사용할 수 있습니까?
답변
예. ArrayBlockingQueue 참조 :
public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, Serializable
A는 배열에 연동하는 바운드 형식 블로킹 큐. 이 대기열은 요소 FIFO (선입 선출)을 주문합니다. 대기열의 헤드는 큐에있는 가장 긴 시간에 있었던 요소입니다. 대기열의 꼬리 은 이 가장 짧은 시간 대기열에 있었던 요소입니다. 새 요소가 큐의 끝에있는 에 삽입되고 큐 검색 작업은 큐의 헤드 에서 요소를 가져옵니다.
이것은 고정 크기 배열에 요소가 삽입되고 소비자가 을 추출하는 의 고전적인 "경계 버퍼"입니다. 일단 생성되면 용량을 늘릴 수 없습니다. 전체 큐에 요소를 넣으려고하면 넣기 작업은 이됩니다. 빈 큐에서 요소를 검색하려고하면 마찬가지로 블록 이됩니다.
큐가 가득 차면 머리를 제거하고 꼬리에 자동 삽입하는 방법을 사용할 수 있습니까? – user496949
자동 : 아니요. 그러나 당신은'offer()'를 사용할 수 있습니다. 실패하면, 직접 머리를 지우고 다시 시도하십시오. –
- 1. Java의 다형성과 인터페이스 (인터페이스를 구현하기 위해 다형성을 사용할 수 있습니까?)
- 2. NSFileHandleReadCompletionNotification에 더 작은 버퍼를 사용할 수 있습니까?
- 3. 프레임 버퍼를 사용할 수 없음
- 4. 조건없이 순환 버퍼를 역순으로 반복 수행 하시겠습니까? 조건을 사용하지 않고 순환 버퍼를 통해 순방향 반복하는
- 5. 여러 인터페이스를 구현하기 위해 Java에서 메소드 인수를 요구할 수 있습니까?
- 6. 콜백을 사용할 때 순환 종속성은 어떻게 피할 수 있습니까?
- 7. IrfanView에서 이미지 버퍼를 조작 할 수 있습니까?
- 8. StructureMap을 사용할 때 순환 참조를 감지하고 디버그 할 수 있습니까?
- 9. Blackberry 또는 java me에서 순환 버퍼를 구현하는 방법은 무엇입니까?
- 10. MySQL을 위해 무엇을 사용할 수 있습니까?
- 11. 성능을 높이기 위해 조인을 사용할 수 있습니까?
- 12. iPhone 개발을 위해 jQuery를 사용할 수 있습니까?
- 13. Dependency Injection을하기 위해 DefaultBinder를 사용할 수 있습니까?
- 14. Emacs에서 전체 버퍼를 평가할 수 있습니까?
- 15. Emacs 버퍼를 정적/고정으로 만들 수 있습니까?
- 16. 디버깅 목적으로 cin 버퍼를 볼 수 있습니까?
- 17. 누군가 Node.Js에 버퍼를 설정할 수 있습니까?
- 18. ConnectionKit을 계속 사용할 수 있습니까?
- 19. FSM을 구현하기 위해 함수 포인터가 실제로 필요합니까?
- 20. Ruby 및 RoR에서 UTF8을 구현하기 위해 현재 어떤 옵션이 있습니까?
- 21. 다른 프로그래밍 기법을 구현하기 위해 작동하는 방법을 사용하고 있습니까?
- 22. 그것의 작동을 이해하기 위해 clrscr() 함수 구현하기
- 23. 명령 패턴을 구현하기 위해 resque 사용하기
- 24. Symfony에서 로그인을 구현하기 위해 어떤 검사기가 사용되어야합니까?
- 25. .Single 메서드를 구현하기 위해 DynamicQuery.cs를 확장하려면 어떻게해야합니까?
- 26. deque를 구현하기 위해 선택할 것은 무엇입니까?
- 27. Unity에서 순환 참조가있는 객체를 만들 수 있습니까?
- 28. 이 순환 양방향 종속성을 어떻게 해결할 수 있습니까?
- 29. 컴퍼스 구현하기
- 30. 바이트 배열 & 바이트 버퍼를 사용할 때?
'BlockingQueue'는 멀티 스레드 패턴을위한'Queue'입니다. 왜 '대기열'이 아닌가? –
질문 수정 – user496949