마지막 18:00분 질문
272
작성한 질문수 134
위의 사진처럼 A, B가 멀티쓰레드 환경에서 실행이 된다고 가정을 하셨는데
A.Start();
B.Start();를 해주게 되면은
가시성 확보를 해주어서
A쓰레드는
_answer = 123;
Thread.MemoryBarrier();
이렇게 하면 메모리에 _answer =123값이 올라가게 되고
그다음에 메모리 베리어로 물을 내리고(가시성확보)
그다음
_complete = true;
Thread.MemoryBarrier();
의 작업을 해주게 되는데
B쓰레드의 경우
메먼저 메모리 베리어에서 가시성 확보를 위해(read를 하기위해) 메모리 베리어를 호출을 하고
if(_complete)로 읽어왔는데
멀티 쓰레드 환경이면 B는 실행을 하여도 A쓰레드에서 _complete를 true로 바꾸기전에
같이 실행을 하면 B는 실행이 되지만 if문에 걸리지 않아 바로 종료를 하게 되지 않나요???
답변 1
C#에서의 RAII
0
65
3
TLS 질문드립니다.
0
79
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
74
2
Unity Span
0
97
2
XML, Dll 차이점
0
134
2
Session 질문입니다
0
96
1
Write Read 커서 키워드
0
88
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
85
2
네트워크 Send 전담 스레드 배치
0
112
2
UnhandledException 으로 서버 터지는 경우
0
102
2
컨텐츠 단, 엔진 단
0
118
1
질문 있습니다
0
92
2
C# 게임서버 3D MMORPG
0
159
2
유니티6 버전
0
106
2
receive하는 부분과 send하는 부분의 차이
0
153
2
커서의 위치의 중요성
0
110
2
C++ 전혀 모르는데 C# 서버
0
176
2
강의에 질문이 있습니다
0
92
2
멀티스레드 이해도 질문
0
107
1
500 vs 500
0
147
3
OnAcceptHandler 액션 함수
0
70
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
204
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
85
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
112
1





