멀티스레드 환경에서 발생하는 대표적인 문제 중 하나인 경쟁 상태(Race Condition)에 대해 설명하고, 이를 해결하기 위한 다양한 전략을 설명해보세요.경쟁 상태란?멀티스레드(또는 멀티프로세스) 환경에서 둘 이상의 실행 흐름이 동일한 자원(변수, 파일, DB 레코드 등)을 동시에 접근·수정할 때, 실행 순서에 따라 결과가 달라지는 오류를 말한다.자주 보이는 유형Read-Modify-Write 충돌: 카운터 증가, 잔액 차감 등Check-then-Act: “없으면 생성” 로직이 동시에 통과하여 중복 생성TOCTOU(Time-of-Check to Time-of-Use): 검사 시점과 사용 시점 사이에 상태가 바뀜초기화/게시 문제: 객체를 한 스레드가 생성하고 다른 스레드가 볼 때 아직 완전히 초기화되지..