면접 질문 - ExecutorService

잠자는 고양이·2025년 5월 22일
0

Java

목록 보기
66/73

질문1. ExecutorService의 동작 원리는?

1.일정 개수의 스레드가 미리 생성됨 (FixedThreadPool(5) -> 5개의 스레드 유지)
2. 사용자가 작업을 요청하면, 대기 중인 스레드가 실행됨
3. 작업이 끝난 스레드는 다시 풀로 반환되어 재사용됨
4. 스레드 개수가 부족하면 새로운 작업은 대기 큐에 저장됨
5. shutdown()을 호출하면 더 이상 새로운 작업을 받지 않고, 실행 중인 작업이 끝나면 스레드 종료

질문2. FixedThreadPool 과 CachedThreadPool의 차이점은?

FixedThreadPool

  • 고정된 개수의 스레드를 유지 (n개)

  • 큐(queue)에 작업을 쌓아두고 대기

  • 일정한 개수의 작업을 처리할 때 적합 (예: CPU 바운드 작업)

CachedThreadPool

  • 필요할 때 스레드를 동적으로 생성 및 재사용

  • 새로운 스레드를 생성하여 즉시 실행

  • 짧은 작업을 빠르게 처리해야 할 때 적합 (예: I/O 바운드 작업)

질문3. shutdown()과 shutdownNow()의 차이점은?

shutdown()

  • 현재 실행 중인 작업을 마친 후 스레드 풀 종료
    shutdownNow()
  • 즉시 실행 중인 작업을 중단하고,
  • 실행 대기 중인 작업은 취소
profile
개발자가 되고 싶은 잠자는고양이

0개의 댓글