가장 일반적인 플랫폼(가장 중요한 것은 x86입니다. 일부 플랫폼에는 멀티스레딩에 유용한 보장을 거의 제공하지 않는 매우 어려운 메모리 모델이 있다는 것을 이해하지만 드문 반례는 신경 쓰지 않습니다)에서 다음 코드는 안전합니까? 스레드 1: someVariable = doStuff(); atomicSet(stuffDoneFlag, 1); 스레드 2: while(!atomicRead(stuffDoneFlag)) {} // Wait for stuffDoneFlag to be set. doMoreStuff(someVariable); 원자적 연산의 표준적이고 합리적인 구현을 가정합니다. Thread 1의 someVariable 할당은 someVariable atomicSet() 이 호출되기 전에 완료되도록 보장됩니까? Thread 2는 stuffDoneFlag 를 원자적으로 읽는 경우 doMoreStuff() 를 호출하기 전에 someVariable 에 대한 할당을 확인할 수 있습니까? 편...
#atomic
#memory-fences
#multithreading
#race-condition
#thread-safety
원문링크 : 원자 명령 및 변수 업데이트 가시성