tcp concurrency

다중 클라이언트 전략

fork, thread, 이벤트 방식은 모두 여러 연결을 처리하지만 메모리, 문맥 전환, 동기화 부담이 다릅니다.

fork

프로세스 격리가 강하지만 연결마다 메모리와 생성 비용이 큽니다.

thread

코드가 직관적이지만 공유 리스트와 broadcast에는 lock 설계가 필요합니다.

framing

채팅 메시지는 TCP 경계가 아니므로 길이 또는 구분자를 명확히 둡니다.

backpressure

느린 클라이언트에게 쓰기가 막히면 전체 broadcast 지연을 만들 수 있습니다.

복사 후 전송

잠금을 오래 잡은 채 send를 호출하지 않도록 대상 목록만 복사합니다.

확장 한계

1,000 연결에서 1,000 스레드는 메모리와 스케줄링 부담이 큽니다.

동시성 전략 검수

동시성 모델과 메시지 경계 문제를 함께 설명합니다.