Search
πŸ€

ThreadLocal

Data μ˜μ—­μ€ ν”„λ‘œκ·Έλž¨μ˜Β μ „μ—­ λ³€μˆ˜μ™€Β μ •μ (Static)λ³€μˆ˜
Heap μ˜μ—­μ€ 객체 μƒμ„±μ‹œ λ©”λͺ¨λ¦¬ ν• λ‹Ή
Stack μ˜μ—­μ€ μ§€μ—­ λ³€μˆ˜μ™€ 맀개 λ³€μˆ˜
이 λ•Œ ν•˜λ‚˜μ˜ μ“°λ ˆλ“œμ—μ„œλ§Œ κ³΅μœ ν•΄μ•Ό ν•˜λŠ” λ³€μˆ˜κ°€ μžˆμ„ 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ ν•˜λ‚˜μ˜ μ“°λ ˆλ“œκ°€ ν• λ‹Ήλ˜μ–΄ MVC νλ¦„μœΌλ‘œ μ‘λ‹΅κΉŒμ§€ μ±…μž„μ§„λ‹€. 이 λ•Œ νŠΈλžœμž­μ…˜κ³Ό 같이 ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•΄μ„œλ§Œ 곡유λ₯Ό ν•΄μ•Ό ν•˜λŠ” μžμ›μ€ ν•΄λ‹Ή μ“°λ ˆλ“œλ§Œ μ°Έμ‘°ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. λ§Œμ•½ ν•΄λ‹Ή λ³€μˆ˜λ₯Ό heap λ©”λͺ¨λ¦¬μ—μ„œ κ΄€λ¦¬ν•œλ‹€λ©΄ 처음 μš”μ²­ λ“€μ–΄μ˜¬λ•ŒλΆ€ν„° 응닡 λ‚˜κ°ˆλ•ŒκΉŒμ§€ ν•΄λ‹Ή λ³€μˆ˜ λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œλ₯Ό 계속 인자둜 κ°€μ§€κ³  κ°€μ•Ό μ•Œ 수 μžˆλ‹€. 맀우 λΉ„νš¨μœ¨μ . κ·Έλž˜μ„œ ThreadLocal 이 생겨남.
ThreadLocal: ν•˜λ‚˜μ˜ μ“°λ ˆλ“œμ—μ„œ κ³΅μœ ν•˜λŠ” μ „μ—­ λ³€μˆ˜
κ·Έλ ‡λ‹€λ©΄ ThreadLocal 은 어디에 μ €μž₯될까?
heap memory 에 μ €μž₯λœλ‹€. ThreadLocal 이 κ·ΈλŒ€λ‘œ μ €μž₯λ˜λŠ” 것이 μ•„λ‹ˆκ³  ThreadLocalMap 에 μ €μž₯λœλ‹€.
the values associated with a ThreadLocal variable are stored in a special data structure called a ThreadLocalMap, which is stored in the heap memory of the current thread.
ThreadLocalMap 은 ν˜„μž¬ μ“°λ ˆλ“œμ˜ νž™ λ©”λͺ¨λ¦¬μ— μ €μž₯λœλ‹€.
νž™ λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜κΈ°λ•Œλ¬Έμ— κ°€λΉ„μ§€ 컬렉터 λŒ€μƒμ΄λ‹€.