쓰레드 2

ThreadLocal - 쓰레드로컬 이란?

ThreadLocal - 쓰레드로컬 이란? Comment 이름 그대로… 쓰레드 단위 로컬 변수 할당임ㅇㅇ 사실 이 Thread local에 대해서는 잘 몰랐는데, 놀랍게도 java1.2버전부터 제공되고있던 유서깊은 클래스였다고 한다. 그게 뭔데 일단 보통 java에서는 멀티 쓰레드를 이용해 한번에 작업을 처리해서 성능상의 이점을 얻을 수 있다. 근데 이 멀티 쓰레드 간에 리소스를 어떻게 공유해야 할지, 그리고 그 리소스의 동시성 문제를 어떻게 해결할 수 있을지 고민해야 한다. 그 방안 중 하나가 바로 Thread local이다. 그거 어떻게 하는건데. 일단 ThreadLocal의 내부는 Map구조를 갖고 있는데, key - thread정보, value - 변수 요렇게 저장한다. 그래서 각각의 쓰레드는 자..

이론 정리/java 2022.12.28

java HashMap의 Thread-Safe이슈와 HashTable, ConcurrentHashMap

HashMap의 Thread-Safe이슈와 HashTable, ConcurrentHashMap Thread-Safe란? Thread-Safe란, 멀티 스레드 프로그램에서 어떤 객체나 함수 등이 여러 스레드로부터 동시에 접근이 이루어져도 문제 없이 실행이 가능한 것이다. 동기화(Synchronize)라고도 표현하며, 여러 쓰레드에서 작업이 이루어져도 데이터의 정합성이 유지되는 것이다. 멀티 스레드가 뭔데?? 먼저 스레드란 프로세스 내에서 일을 처리하는 세부실행 단위를 뜻한다. 그렇다면 멀티 스레드란, 하나의 프로세스를 여러 개의 스레드로 나누어 수행해주는 것이다. 즉, 하나의 프로그램이 여러 작업을 동시에 수행할 수 있도록 해주는 것이며 이를 통해 수행 능력을 향상시켜 주는 개념이다. HashMap에서 T..

이론 정리/java 2022.02.25