• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

21.11.27 04:05 작성 조회수 79

0

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

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

 

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

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

답변 1

답변을 작성해보세요.

0

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