원자 명령 및 변수 업데이트 가시성


원자 명령 및 변수 업데이트 가시성

가장 일반적인 플랫폼(가장 중요한 것은 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

원문링크 : 원자 명령 및 변수 업데이트 가시성