ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스레드 로컬 저장소
    @ 17. 1 ~ 18/C# 멀티스레드 2018. 6. 21. 00:49

    스레드 로컬 저장소 TLS (Thread local Storage)를 이용하면 스레드마다 고유한 메모리 영역에 정보를 저장할 수 있다

    이 정보는 스레드별로 따로 관리되며 한 스레드내에서는 마치 전역 변수처럼 사용할 수 있다.


    예를들어 C++과 C#에서 정적변수는 프로세스 내의 모든 스레드에서 접근 가능한 메모리 영역에 저장된다.

    모든 스레드가 공유해 사용하는 정적 변수나 전역 변수는 동기화 없이 사용하면 문제가 생길 수 있다.


    스레드마다 데이터를 따로 관리해 동기화 없이 처리하려는 경우나 프로그램 특성상 스레드마다 필요한 정보를 따로 관리해야하는 경우도 흔히 볼 수 있다.

    바로 이때 TLS를 사용한다. TLS를 사용하면 시스템 내에서 논리적으로는 동일한 변수를 스레드마다 별도의 메모리 공간에 저장할 수 있다.


    '@ 17. 1 ~ 18 > C# 멀티스레드' 카테고리의 다른 글

    스레드 풀 스레드 관리  (0) 2018.06.30
    읽기 / 쓰기 락  (0) 2018.06.27
    스레드 동기화란?  (0) 2018.03.05
    동시성 컬렉션 사용  (0) 2017.08.20
    async, await에 대한 설명  (0) 2017.08.19
Designed by Tistory.