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

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

작성한 질문수

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

SpinLock

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

22.10.02 23:37 작성

·

210

0

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

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

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

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

답변 2

0

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

2022. 10. 04. 20:52

답변 감사합니다.

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

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

0

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

2022. 10. 03. 18:04

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

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