미해결
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Lock과 interupt관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
1. 만약 A thread에서 오래걸리는 함수에 mutex lock을 잡아두고 time slice나 각종 인터럽트 핸들링을 통해서 컨텍스트 스위치가 일어나게 되고, 다른 모든 쓰레드가 A thread가 lock 잡아둔 그 함수 내부의 공유변수를 갖다 쓰고 싶어서 mutex_lock.lock()을 호출하기 위해 기다리는 상황이라면, OS 스케쥴러를 통해서 리소스가 넘어가도 모든 다른 쓰레드가 mutex_lock.lock()이 되지 않아 cpu 리소스를 받자 마자 바로 yield하고 A thread로 다시 돌아오게 되는건가요?
2. (1과 비슷한 질문이긴 하지만..궁금해서요ㅠㅠ)
spin lock이 아닌 그냥 mutex lock을 썼을 때, B라는 다른 thread가 해당 mutex 변수를 가지고 lock 걸었으면, A thread는 mutex_lock.lock()을 호출하는 구문을 실행하는 부분에서 바로 cpu리소스를 반환하게 되나요?