대기열에 작업을 허용하지 않는 고정 크기 스레드 풀을 만들고 싶습니다. 즉, 스레드 풀이 현재 사용 중이면 들어오는 작업을 완전히 거부해야합니다. documentation을 기반으로, 내 의견으로는이 작업을 수행하는 한 가지 방법은 작업을 인정하지 않는 더미 Queue 객체를 만드는 것입니다. Java에서이를 수행하는 관용적 인 방법은 무엇입니까?큐가없는 ThreadPoolExecutor
7
A
답변
10
ThreadPoolExector에는 객체가없는 대기열 인 SynchronousQueue을 사용할 수 있습니다. 캐시 된 스레드 풀은 필요에 따라 새 스레드를 만들기 때문에이 기능을 사용합니다.
대기열에 넣을 수 없지만 RejectedExecutionHandler을 사용하여 현재 스레드에서 작업을 실행하는 것이 좋습니다. 이렇게하면 항상 "즉시"실행됩니다.
현재 : 왜 이렇게하고 싶은지 분명히하는 것이 유용 할 것입니다.
0
왜 그런 일을하고 싶습니까? TP + Q의 근본적인 목적은 작업에 대한 자동 "유지 메커니즘"을 가지며 작업 생성 프로세스에서 작업자를 분리합니다. 당신의 의도가 근로자만큼 많은 수락 가능한 일 패키지를 가지고 있다면 TPE가 정말로 필요하지 않습니다.
관련 문제
- 1. threadpoolexecutor 죽이기
- 2. ThreadPoolExecutor 유틸리티 메서드
- 3. JAVA - 실행중인 ThreadPoolExecutor 취소
- 4. ThreadPoolExecutor 및 AsyncTask 사용
- 5. 작업/작업 도둑질 ThreadPoolExecutor
- 6. ThreadPoolExecutor and join()
- 7. ThreadPoolExecutor 및 RejectedExecutionExceptionHandler
- 8. ThreadPoolExecutor 구현 문제
- 9. ThreadPoolExecutor 및 Socket입니다. 스레드
- 10. ThreadPoolExecutor 다른 스레드와 경합하는 스레드
- 11. 동일한 차단 대기열을 공유하는 ThreadPoolExecutor
- 12. AbortableHttpRequest를 실행하기위한 ThreadPoolExecutor - 중단을 호출하는 방법?
- 13. Java (Android)의 우선 순위 ThreadPoolExecutor
- 14. Java, ThreadPoolExecutor, afterExecute, 다시 제출 작업?
- 15. Java ThreadPoolExecutor - 특정 스레드를 종료 하시겠습니까?
- 16. Java ThreadPoolExecutor 전략, 'Direct Handoff'(대기열 포함)?
- 17. ThreadPoolExecutor - 지정된 작업을 처리하는 스레드 지정
- 18. 모든 작업 (알 수없는 번호)이 끝날 때까지 기다리십시오. ThreadPoolExecutor
- 19. ThreadpoolExecutor beforeExecute 및 afterExecute 후크에 대한 설명이 필요합니다.
- 20. 너무 많은 데이터가 필요하다면 ThreadPoolExecutor 명령 대기를 어떻게 만들 수 있습니까?
- 21. 제네릭 : 자바 내 자신의 클래스가 나는이 코드 조각으로 새로운 자바 <code>ThreadPoolExecutor</code>을 인스턴스화 할
- 22. HashMap에 enum 값 삽입하기
- 23. DelayQueue에 의해 뒷받침되는 ThreadPoolExecutor를 생성 할 수없는 이유는 무엇입니까?
- 24. ESB를 통합하여 메시지 브로커와 메시지 큐를 구현할 수 있습니다.
- 25. 자바에서 스레드를 종료하는 방법은 무엇입니까?
- 26. Tomcat을 종료 할 때 Spring bean에서 ThreadPoolExecutor를 종료하는 방법은 무엇입니까?
- 27. ThreadPoolExecutor의 모든 작업자를 즉시 강제 종료하는 방법
- 28. ExecutorService가 작업에 대한 새 스레드를 생성하는 단위 테스트 방법은 무엇입니까?
- 29. 자바 스레드 풀에서 전달되는 실행 가능한 객체는 무엇입니까? RejectedExecutionHandler
- 30. Java 7에서 fork/join의 태스크 오브젝트 재사용
작업은 이전 스레드의 대기열에서 대기하지 않고 사용 가능한 스레드가있는 다른 스레드 풀 실행 프로그램을 선택할 수 있습니다. ThreadPoolExecutor 대신에 무엇을 사용해야합니까? –
실행을 제어하려면 TPE를 선택하지 마십시오. 작업을 처리 할 수있는 간단한 작업자 스레드를 가지고있는 것이 더 낫습니다 (사용 가능한 경우). 은 기본 스레드에서 theads를 생성하고 pull/push하는 간단한 Set입니다. –
vivekv