동시성1 [ThreadLocal] 쓰레드 로컬 사용해보기 동시성이란? 동시성 문제는 여러 쓰레드가 같은 인스턴스의 필드에 접근해야 하기 때문에 트래픽이 적은 상황에서는 확률상 잘 나타나지 않고 트래픽이 점점 만나질 수록 자주 발생합니다. 특히 스프링 빈처럼 싱글톤 객체의 필드를 변경하며 사용할 때 이러한 동시성 문제를 조심해야 합니다. 이런 동시성 문제는 지역 변수에서는 발생하지 않습니다. 지역 변수는 쓰레드마다 각각 다른 메모리 영역이 할당되기 때문입니다. 동시성 문제가 발생하는 곳은 같은 인스턴스의 필드(주로 싱글톤에서 자주 발생), 또는 static 같은 공용 필드에 접근할 때 발생합니다. 동시성 문제는 값을 읽기만 하면 발생하지 않고 어디선가 값을 변경하기 때문에 발생합니다. 이러한 문제를 해결하기 위한 것이 스레드 로컬입니다. ThreadLocal 쓰.. Java 2023. 4. 22. 이전 1 다음