spinlock2 01_10_멀티쓰레드_SpinLock Q1. 락을 구현할 때 Interlocked.CompareExchange를 이용하는 이유는 무엇인가? Q2. 스핀락을 안보고 구현해 보세요. namespace ServerCore { class SpinLock { volatile bool _locked = false; public void Acquire() { while(_locked) { // 잠김 풀리기를 기다린다 } // 내꺼! _locked = true; } public void Release() { _locked = false; } } internal class Program { static int _num = 0; static SpinLock _lock = new SpinLock(); static void Thread_1() { for(int .. Server programming 2023. 3. 15. 02_07_멀티쓰레드 프로그래밍_SpinLock Q1. Spin Lock 의 개념에 대해 설명해 보세요. Q2. volatile 키워드의 의미는? Q3. 스핀락은 어떨 때 쓰는게 좋고 어떨 때 쓰면 안좋은가? Q4. SpinLock 클래스를 구현하고 이를 이용해서 2개의 각 스레드가 1을 10000번씩 더하고 빼는 코드를 구현해 보아라. 이번 시간에는 스핀락을 구현해 보는 실습을 할거야. 많은 것들을 배울 수 있을거야. 면접에 단골로 등장하는 주제야. 멀티 스레드가 중요하면서도 멀티 스레들와 관련해서 스핀락만 물어봐도 멀티스레드에 대해 이해하고 있는지를 간단하게 테스트할 수 있는 질문이기 때문이야. 오늘 실습을 해볼거는 일단 지난 시간에 했던 코드를 복원하고 시작한다. #include "pch.h" #include #include "CorePch.h".. Server programming 2022. 8. 5. 이전 1 다음