미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
메모리 베리어에 관하여 궁금한 것이 있습니다.
메모리 베리어 강의의 막바지에 예제에서
void ()
{
_answer = 123;
Thread.MemoryBarrier();
_complete = true;
Thread.MemoryBarrier();
}
이런 코트가 있고 여기서 왜 메모리 베리어가 두 개가 있냐하면
_answer에 값을 변경하고 배리어를 통해 메모리에 써주고
_complete = true도 변경하고 배리어를 통해 메모리에 써주기 때문에 두 번 들어갔다고 설명을 하셨는데요. 여기서 문득 궁금해지는게 만약에
_answer = 123;
_complete = true;
Thread.MemoryBarrier();
이런식으로 변경을 위로 몰고 배리어를 한번만 호출하면
위에 변경사항이 모두 메모리에 써져 기존과 같은 결과의 코트가 되는것인가요? 아니면 바로 위의 최근 것만 램에 저장이 바로 되어 결과가 다른 코드가 되는 것인가요?