<aside> 📗 목차
</aside>
<aside> 💡 TLS가 뭔디?
</aside>
<aside> 💡 결국 **TLS는 쓰레드마다 가지고있는 로컬 저장소를 의미**함.
→ 그 스레드의 전역 변수 저장소라고 생각하셈
→ 근데 신기하게도 TLS는 static처럼 글로벌 영역에 생성됨 (private static에 가까움)
</aside>
<aside> 💡 이 그림에서, 공유하고있는 특정 데이터에 스레드들이 몰릴경우, 레이스컨디션이 발생할수도 있었지?
글로벌 영역도 그렇다… 각 스레드들이 글로벌 영역에서 데이터를 꺼내 쓰려고하면, 당연히 경합이 발생하겠지?
그러니까, 각 스레드들은 공유영역에 방문했을떄, 충분한 양의 힙영역의 데이터를 미리 얕은 복사 하여 TLS영역으로 가져온다. 즉, heap영역에서 데이터를 가져올때만 LOCK을 잡아두는 상태
</aside>
<aside> 💡 멀티스레드 환경의 Context Switching: 식당 비유 에 이어서 설명해보자
>> 결론부터 말하면, TLS는 한식집에서 여러 반찬을 쟁반 위에 올려서 주는 개념

LOCK은 방마다 필요할거아냐?
또, 작업하다보면 스레드들이 특정 방에 몰리게 될수도있고!

그래서 이제 각 방마다 Lock의 개수를 정해두고 스레드들이 방문 가능하게 만들어주겠지?
또한, 주방에서는 각 LOCK이 한식/중식/양식/분식 등으로 나눠서 작업한다고 가정했을때

근데 모든 손님들이 골고루 식당을 쓰는게 아니라, 주문하는게 특정 식단에 쏠릴 수 밖에 없겠지?
→ 예측할 수 없는 상황이 발생할수도!
만약 한식이라면,,, 한식은 반찬이 많을거이니냐? 근데 만약 한식집에서 반찬을 하나씩 줘서 가져가라고하면.,,, 한식집은 경합이 미친듯이 발생하겠지? >> 그럼 반찬들을 어디 쟁반 뒤에 두고 주면 더 빠르지 않을까? (TLS개념)
</aside>