인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

사과일광욕님의 프로필 이미지
사과일광욕

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

특정 클래스에서만 Atomic을 써서 관리하는 이유가 궁금합니다

작성

·

137

0

MemoryPool에선 관리하는 변수들을 Atomic으로 관리하셨는데

Send,Recv Buffer나 Session에서는 아토믹없이 내부에서 int형만으로 처리하는걸 보고 궁금증이 생겼습니다.

 

메모리풀뿐만 아니라 세션이나 send,recvBuffer에서도 멀티쓰레드를 통해 처리되지 않나요?

아토믹 변수를 쓰시는 철학(?), 어떤 배경에서 쓰실 생각을 하셨는지 궁금합니다.

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

RecvBuffer 같은 경우는 코드 흐름상
1번에 1개의 쓰레드만 접근할 수 있어서 별다른 처리가 필요 없습니다.
일반적으로 멀티쓰레드 환경에서 동시에 다수의 쓰레드가 접근할 수 있다면
lock을 걸고 접근하거나, atomic 변수를 사용해야 합니다.
lock을 걸었다면 일반 int도 충분하고,
lock까지 갈 필요 없이 단순한 정수를 동시 접근하는 상황이라면
atomic을 고려할 수 있습니다.

사과일광욕님의 프로필 이미지
사과일광욕

작성한 질문수

질문하기