방금 스레드 풀을 사용하여 연습을 시작했습니다. 자바로 서버 클라이언트 뱅크 애플리케이션을 만들고 있는데, 오라클의 설명서를 살펴보고 캐시 된 쓰레드 풀을 사용하려고 생각하고 있습니다. 하지만 몇 가지 계산 테스트를 실행하고 고정 된 스레드 풀 빠른 것으로 보였다. 캐시 된 스레드 풀이 지연되어 너무 많은 불필요한 스레드가 생성되는 것 같습니다. (또는 어쩌면 내가 여기서 뭔가 잘못하고있다).Java : 여기에 어떤 종류의 ThreadPool을 사용해야합니까?
제 질문은 실제 상황에서 어떤 것이 더 효율적입니까? 아니면 더 효율적일 수있는 또 다른 종류의 수영장이 있습니다. 사용하지 않는 스레드 (대신 새로 만드는)이 자동으로 재사용, 위의 라인에서
ExecutorService executor = Executors.newCachedThreadPool();
for (int i = 0; i < 500; i++) {
Runnable worker = new serv(10000000L + i);
executor.execute(worker);
}
, 또는 거기에 내가 추가 할 필요가 뭔가 다른 :
또한, 내 계산 시험에서 나는 몇 줄이 이런 일이 일어나기 위해서?
작업이 CPU 바운드 인 경우 보유하고있는 CPU 수와 일치하는 고정 풀을 사용하면 더 효율적입니다. –