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

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

시타포르-님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Interlocked

AfterValue

작성

·

426

0

강의 맨 끝에 int afterValue라는건 데이터가 변경된 후의 데이터를 출력하는 거니까, 동시에 일어날수있는 쓰레드에 양쪽에 붙여야 서로 변경된 값을 출력할수있는 건가요?

답변 2

1

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

Increment를 한 다음 값을 말하는거라,
단일 쓰레드에서도 여전히 유효합니다.
말 그대로 1 증가시킨 '그' 값을 말하는겁니다.

Interlocked.Increment(ref number);
 // 끼어들기 가능
int a = number;

이렇게 하면 중간에 끼어들 수 있으니 1 증가된 '시점'의 값이라는 보장이 없겠죠.

0

시타포르-님의 프로필 이미지
시타포르-
질문자

음 이렇게 이해하면 될까요

1. 단일 쓰레드에서도 increment한 다음의 값이 출력된다

2. 출력하는 중에도 끼어들기가 가능하니 '원하는 수' 만큼 수정될수 있다?

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

'원하는 수'라는게 무엇을 말씀하시는지 헷갈리네요.
말 그대로 Interlocked.Increment를 성공하는 딱 그 시점의 값을 알고 싶을 때,
그 결과를 Increment의 return 값으로 받아오면 됩니다.