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

astrape님의 프로필 이미지

작성한 질문수

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

Thread Local Storage

TLS 관련 질문입니다

작성

·

219

0

조금 헷갈리는 부분이 있어서 질문드립니다

현재 Static 같이 힙 영역에 있는 데이터들을 동시에 가져갈 경우 데이터가 바뀔수 있어서 Lock을 걸어 싱글 쓰레드처럼 한번에 한명만 접근하여 처리하도록 알려주셨는데

TLS를 사용하면 공용 공간에 있는 데이터를 최대한 많이 자신의 쓰레드로 가져와서 각각 처리하고 다시 돌려주는걸로 이해를 했는데 

그럼 나중에 각각의 쓰레드에서 처리하고 난 결과가 서로 상충되는 경우가 나타날수도 있지 않나요?

아니면 한명씩 싱글 쓰레드로 처리하는데 가져오는 데이터 양이 많아져서 처리속도가 빨라지는것이라고 이해해야 할까요?

답변 2

1

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

데이터를 갖고 간다는게 의존성이 서로 묶여 있는 데이터를
각자의 TLS로 갖고 가라는 것이 아니고
독립적으로 사용할 수 있는 (Buffer라거나) 데이터를 갖고 가는 것이라 상관없습니다.
그리고 애당초 TLS에 자신만 사용할 객체를 할당할 수도 있구요.
강의 후반부에 SendBuffer를 TLS로 만드는 실습을 해보는데 그러면 감이 잡힐꺼에요.

0

astrape님의 프로필 이미지
astrape
질문자

아 그렇군요.. 답변 감사드립니다!

빨리 뒤쪽 강의도 들어봐야겠네요 ㅎㅎ

astrape님의 프로필 이미지

작성한 질문수

질문하기