CAS 의사코드를 설명하시면서
while(_locked)
{
}
_locked=true;
이 코드를 한번에 실행할 수 있다고 하셨는데 두 스레드가 동시에 if문에 진입한다면 동일한 결과를 가지지 않을까라는 생각에서 의사코드 자체를 SpinLock 클래스 안에 새로운 매서드로 만들어서 실행해보니 0이 출력되지 않았습니다.
어떤 원리로 두 코드가 한번에 실행되는지와 cp매서드를 어떻게 수정해서 compare_exchange_strong처럼 동작하게 할 수 있는 지 궁금합니다.
빠르게 답변해주셔서 감사드립니다.
다른 문제인데 아래 에러는 어떻게 해결해야할까요? 단순한 코드인데 64비트 디버그 시에만 문제가 발생하네요
혹시나 해서 환경설정 소스코드를 다운받아서 쓰레드를 만들어도 동일한 오류가 발생하는데 이러면 c++설치가 잘못된걸까요?