newCachedThreadPool : 초기 스레드 0, 코어 스레드 0, 최대 스레드 int 최대 값.(OS 성능과 상황에 따라 달라짐.)
스레드 개수보다 작업 개수가 많으면 새 스레드를 생성한다.
스레드가 60초간 작업을 하지 않으면 스레드를 종료하고 풀에서 제거.
newFixedThreadPool(int nThreads) : 초기 스레드 0, 코어 스레드, 최대 스레드는 매개변수에 따라 달라진다.
스레드가 놀고 있더라도 제거하지 않는다.
프로세서 수 체크.
System.out.println(Runtime.getRuntime().availableProcessors());
스레드 풀의 스레드는 main이 종료되더라도 작업을 처리하기 위해 남아있음.
프로그램 종료할 때, 스레드들을 종료하게 처리.(로그나 다른 데이터를 위해 후 처리후 제거)
shutdown : 작업 대기 후 스레드 종료.
shutdownNow : 중지 시도 후 작업 종료
awaitTermination : 매개변수로 시간을 지정, 시간 내 완료하면 true, 실패하면 false
'Java' 카테고리의 다른 글
자바 Callback (0) | 2020.11.03 |
---|---|
자바 ExecutorService3(Callable) (0) | 2020.11.03 |
자바 ExecutorService2 (0) | 2020.11.03 |
자바 ExecutorService (0) | 2020.11.03 |
자바 쓰레드 Future (0) | 2020.11.03 |