I/O multiplexing은 많은 기다림을 하나의 ready 루프로 모은다
데이터가 없는 연결마다 스레드를 멈춰 세우는 대신, 커널이 준비된 fd만 알려주면 짧게 처리한다.
1 register관심 fd 등록read/write readiness 지정
2 wait커널 이벤트 대기준비될 때까지 루프가 잠듦
3 dispatchready fd 처리handler는 짧게 실행
4 re-arm관심 이벤트 갱신남은 작업을 다시 대기
모델
기다림 위치
비용
blocking thread
연결별 스레드
idle 연결도 스택과 스케줄링 비용
multiplexing
하나의 대기 호출
상태 머신과 non-blocking 처리 필요
좋은 사용처
동시 idle 연결 많음
handler가 짧고 I/O 중심일 때