작성
·
186
0
선생님 수업을 잘 듣고있는 취준생입니다!
Thread Local Storage에 관련해서 질문이 있는데, 전역 변수로 thread_local int32 LThreadId; 이렇게 만들어 놓은 상태로 실행되고 있는 프로그램의 쓰레드 수를 4개라고 가정했을 때, 메모리는 어떻게 잡히는 건가요?
일단 전역에 4바이트, 그리고 각 쓰레드마다 4바이트씩 잡히는 건가요? (총 20 바이트 맞나요...?)
Thread Local Storage가 각 Thread 마다 각자의 공간의 독립성을 유지하고 있다면 차지하는 부분도 있을텐데 너무 궁금해서 질문을 드렸습니다.
답변 1
1
엄청 신비로운 것은 아니고, 쓰레드가 만들어질 때 전용 스택 공간이 할당되는 것처럼
'동일 쓰레드 내부에 한해서 전역인' TLS 공간도 같이 할당되는 것입니다.
(메인 쓰레드도 결국 쓰레드이다보니 마찬가지겠죠.)
아하 드디어 이해되었습니다!! 감사합니다!