thread-per-client는 연결 수가 늘수록 대기 비용이 먼저 커진다
연결이 적을 때는 단순하지만 idle 연결이 많아지면 스택 메모리, 스케줄링, lock 경쟁이 병목이 된다.
구간
thread-per-client
event loop
소수 연결
코드 흐름이 단순
상태 관리가 더 번거로움
idle 다수
스레드와 스택이 계속 점유
ready fd만 처리
느린 클라이언트
스레드가 대기 상태로 묶임
queue와 backpressure로 제어
장애 지점
context switch와 lock 경쟁
핸들러가 오래 돌면 전체 지연