ThreadPoolExecutor는 core→queue→max→reject 순으로 포화된다

maximumPoolSize는 Queue가 먼저 수용을 거부해야 사용됩니다.

  1. 1

    core

    corePoolSize까지 worker

  2. 2

    queue

    offer 성공 시 대기

  3. 3

    extra

    queue full이면 max까지 worker

  4. 4

    saturated

    worker+queue 모두 full

  5. 5

    reject

    handler 호출

핵심: 무제한 Queue를 두면 max가 사실상 작동하지 않고 지연이 Queue에 쌓입니다.