인프런 커뮤니티 질문&답변

명탐정우샷미님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

SpinLock

멀티쓰레드 질문입니다.(파이썬과의 차이)

작성

·

220

0

파이썬에서는 멀티쓰레드가 한개의 코어에서 쓰레드만 변경되가며 작업을 해서인지, lock을 안함으로 인한 문제가 발생한 적이 없던 것으로 기억합니다.

비슷한 문제를 만드려면 멀티프로세싱을 이용해서 코드를 작성했었는데....

C#에서는 멀티쓰레드를 활용하는데, 쓰레드가 독립적으로 실행되는 것이, 마치 각 쓰레드가 독립적인 코어에서 작동하는 듯한 느낌이 듭니다.

한개의 코어에서 쓰레드만 변경한다면 메모리를 순차적으로 가져다 쓸테니, lock에 대한 문제가 발생하기 않지 않나요???

답변 2

0

답변 감사합니다.

'한 번에 처리 되어야 하는 과정'은 언젠간 저에게 찾아올 것 같습니다.

여기에 제대로 한번 맞아 봐야, 제대로 이해가 될 것 같습니다.

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

한개의 코어에서 쓰레드만 변경한다면 메모리를 순차적으로 가져다 쓸테니, lock에 대한 문제가 발생하기 않지 않나요???

그렇지 않습니다. 물론 확률은 줄어들 수는 있겠지만,
한개의 코어만 사용한다 해서 멀티쓰레드 문제가 완전 해결되진 않고
운 나쁘게 '한 번에 처리 되어야 하는 과정'에서 컨텍스트 스위칭이 일어난다면
여전히 문제는 일어날 수 있습니다.