그래서 생산자/소비자 유형 응용 프로그램에서 고정 크기 BlockingQueue [ArrayBlockingQueue]를 사용하고 있지만 사용자가 대기열 크기를 즉시 변경할 수있게하려고합니다. 문제는 생성 후 용량을 변경할 수있는 BlockingQueue 구현이 없다는 것입니다. 누구든지 전에 이것을 보았습니까? 어떤 아이디어?Re-largeable Java BlockingQueue
답변
LinkedBlockingQueue를 확장 할 수 있습니다. 그것의 한계는 소프트 한도 (즉, 추가 체크)이며, 당신이 변경할 수있는 무엇인가를 만들 수 있습니다 (내장 된 것을 비활성화하고 자신을 넣음으로써)
가장 확실한 해결책은 귀하의 상황에 따라 적절하게) 새로운 큐를 원하는 업데이트 된 용량으로 인스턴스화하기 만하면됩니다. 그런 다음 이전 큐의 모든 것을 새로운 큐로 밀어 넣습니다.
이렇게하면 이전 큐에 대한 참조가있는 모든 스레드가 차단되어 새 큐의 새 내용이 아닌 이전 큐의 새 내용을 기다립니다. –
@bkail : 그래서 내가 "당신의 상황에 따라"라고 말한 것입니다. OP가 블로킹 큐에 대한 많은 참조를 가지고 있다면, 그는 리졸버가이 솔루션을 작동하게 만들 필요가있을 것입니다 (예를 들어 큐 자체를 외부 적으로 큐 역할을하는 컨테이너 오브젝트로 감싸는 것입니다. 변경됨). –
- 1. Java NIO Pipe vs BlockingQueue
- 2. Observer - BlockingQueue
- 3. BlockingQueue - blocked drainTo() 메소드
- 4. ExecutorService, CompletionService, BlockingQueue 및 Observer를 올바르게 사용하는 Java?
- 5. 자바에서 다수의 생산자와 소비자 문제 (BlockingQueue 미포함)
- 6. Java 내에서 Java 모니터링
- 7. Java
- 8. JAVA
- 9. Java 응용 프로그램과 Java 애플릿
- 10. Java EE/Java 브라우저 보안
- 11. Java 클래스에서 Java 클래스 호출
- 12. 스칼라 - Java =? (또는 Clojure-Java =?)
- 13. Java 1.6.0_26은 Java 1.6.26과 동일합니까?
- 14. Java 7에서 Java 6 컴파일
- 15. Java 객체 참조 및 Java 메소드
- 16. Java ScriptEngineManager가 특정 Java 메소드에 액세스하도록 허용
- 17. Java org.w3c.dom : Java 파서 라이브러리가 있습니까?
- 18. Java 종료가 아닌 Java 테스트가 있습니까?
- 19. Java RMI를 사용하는 Java 알림 프레임 워크
- 20. Java 프런트 엔드와 Java 백엔드 연결 방법
- 21. Java 콘솔 앱과 ASP.NET 앱에서 Java 호출
- 22. Java 프로그램의 Arletist를 Java 프로그램에서 서블릿으로 전달
- 23. Java Standard Edition에서 Java Mobile 애플리케이션 실행
- 24. Java 가상 머신이 Java 언어로 프로그래밍 되었습니까?
- 25. Java 및 gstreamer-java 초기화 오류
- 26. JAVA Project ... 내 프로젝트에 .java 파일을 추가하려고합니다.
- 27. Java 6의 Java 7 SDK 기능 사용
- 28. "java"가 성공하고 "java emmarun"이 실패합니다.
- 29. Ant의 Java 작업에서 Java 포크와 동일합니까?
- 30. Java 개발자가 Java Desktop 개발로 이동
많은 내부 코드를 복사/붙여 넣기하지 않으면 불가능합니다. 전기 톱을 별도의 구현 (예 : Apache Harmony의 구현)으로 가져 가야합니다. – jbellis
@jbellis 왜 하위 클래스에 코드를 복사해야합니까? –
서브 클래 싱을 통해 원하는 기능을 얻을 수 없습니다. 너무 많이 최종/개인입니다. – jbellis