가능한 한 빨리 데이터베이스 테이블에서 작업 큐를 처리하는 동시에 작업을 처리 할 스레드 수를 제한하려고합니다.
고정 크기 스레드 풀을 과 함께 사용하고 있습니다. Executors.newFixedThreadPool (N);Java의 스레드 풀에 사용 가능한 스레드가 있는지 확인하는 방법
스레드 풀이 꽉 찼는지를 알고 싶습니다. 현재 50 개의 스레드가 실행 중이라는 것을 의미합니다. 그렇다면 스레드를 실행하기 전에 스레드를 사용할 수있을 때까지 기다릴 것입니다. 메인 스레드를 자고있는 대신 새로운 하나. 내가하고 싶은 것이의
코드 :
ExecutorService executor = Executors.newFixedThreadPool(N);
ResultSet results;
while(true) {
results = getWaitingTasksStmt.executeQuery();
while(results.next() && executor.notFull()) {
executor.submit(new thread(new runnableInheritedClass(results)));
}
}
실행 프로그램이 스레드를 작성합니다. runnables/callables를 거기에 넣어야합니다. N이 50으로 설정되고 50이 제한 인 경우 고정 스레드 풀이 새 스레드를 생성하지 않습니다. – mkorpela