작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SpinLock
작성
·
220
0
파이썬에서는 멀티쓰레드가 한개의 코어에서 쓰레드만 변경되가며 작업을 해서인지, lock을 안함으로 인한 문제가 발생한 적이 없던 것으로 기억합니다.
비슷한 문제를 만드려면 멀티프로세싱을 이용해서 코드를 작성했었는데....
C#에서는 멀티쓰레드를 활용하는데, 쓰레드가 독립적으로 실행되는 것이, 마치 각 쓰레드가 독립적인 코어에서 작동하는 듯한 느낌이 듭니다.
한개의 코어에서 쓰레드만 변경한다면 메모리를 순차적으로 가져다 쓸테니, lock에 대한 문제가 발생하기 않지 않나요???
답변 2
답변 감사합니다.
'한 번에 처리 되어야 하는 과정'은 언젠간 저에게 찾아올 것 같습니다.
여기에 제대로 한번 맞아 봐야, 제대로 이해가 될 것 같습니다.
그렇지 않습니다. 물론 확률은 줄어들 수는 있겠지만,한개의 코어만 사용한다 해서 멀티쓰레드 문제가 완전 해결되진 않고운 나쁘게 '한 번에 처리 되어야 하는 과정'에서 컨텍스트 스위칭이 일어난다면여전히 문제는 일어날 수 있습니다.