[게임서버프로그래밍#5] 멀티스레드 Client-Server 구현 (feat: mutex, chrono)
이 글에서는 서버가 여러 클라이언트의 요청을 동시에 처리하기 위해 멀티스레드를 사용하는 방법을 설명한다. 멀티스레드 환경에서 발생하는 자원 충돌 문제를 막기 위해 mutex(뮤텍스)를 사용하고, 통신 타임아웃 처리를 위해 chrono를 적용하는 방법도 함께 다룬다. 멀티스레드가 필요한 이유하나의 서버 소켓이 다수 클라이언트와 통신할 때, 동시 접속 요청을 처리하려면 스레드가 필요하다.스레드를 사용하지 않으면 하나의 클라이언트 처리가 끝날 때까지 다른 클라이언트는 대기해야 한다. Thread 기본 개념스레드는 하나의 프로세스 안에서 독립적으로 실행되는 흐름이다.스레드들은 Heap 영역, 전역 변수, 파일 핸들 등을 공유한다.문제점:자원을 공유하기 때문에 여러 스레드가 동시에 같은 데이터에 ..
2024.06.02