멀티스레드
-
멀티스레드 환경에서의 데이터 전송에 대한 안정성 향상 방법프로그래밍 2024. 10. 10. 13:08
멀티스레드 환경에서 우리는 데이터를 처리해야 할 경우가 있다. 서버 측의 경우 kafka, rabbitmq, redis 등 대기열로 처리할 수 있는 충분한 솔루션이 있으므로 이슈가 많지는 않지만, 클라이언트, 서버 모두 이슈가 있을 수 있다. 먼저, 멀티스레드는 이벤트(코루틴) 스레드라던지, 직접 생성한 Background Thread가 될 수 도 있도 있다.모두 비동기적 작업이라는 면에서 동일하게 보아도 되겠다. 따라서 동기 작업이 아니므로 절차적으로 진행되지 않고, 여러 스레드가 동시적으로 같은 메모리를 점유할 수 있으므로 항상 경쟁상태가 발생할 수 있는 것을 염두에 두어야 한다. 클라이언트에서 한가지 예를 보자. 파일을 공유하기 위해 서버에 연속적으로 파일 전송을 하는 http 리퀘스트가 있다고 가..