게임 하나 만들어보고 있는데 스레드 동기화를 어케 해야하지?

스레드별로 일단 패킷을 받아본 다음에

데이터를 읽는 패킷이면 어차피 값 변하는 거 없으니까 순서 지킬 필요도 없으니 동기화 안 하고

데이터 쓰는 부분은 지들끼리 안 꼬이게 동기화 해줘야할 거 같은데

데이터 쓰기 패킷이 들어오면 일단 데이터 쓰는 게 먼저니까 이벤트로 데이터 읽기에다 일단 블락시켜야하나??

데이터 쓰는 애들은 지들끼리 안 꼬이게  크리티컬 섹션??

일케 두개 해야하나 아니면 이벤트 안 써서 읽기 쓰기 서순 안 지키게 해도 되나 모르겟노