lottie
Seungjun's blog
blog
Thread와 ThreadLocal

Thread와 ThreadLocal

Thread와 ThreadLocal은 Java에서 제공하는 두 가지 다른 클래스로, 각각 다른 목적과 사용 사례를 가지고 있습니다.

Thread

Thread 클래스는 Java에서 멀티스레딩을 지원하기 위한 핵심 클래스입니다. Thread 인스턴스는 프로그램 내에서 독립적으로 실행되는 별도의 실행 흐름, 즉 스레드를 나타냅니다.

멀티스레딩은 여러 작업을 동시에 처리할 수 있게 해주므로, CPU를 효율적으로 활용하고 응답 시간을 개선하는 데 도움이 됩니다.

Thread 클래스를 사용하면 새로운 스레드를 생성하고 시작할 수 있습니다. 또한 스레드의 우선순위를 설정하거나, 스레드를 일시 중지하거나 재개하는 등의 작업을 수행할 수 있습니다.


ThreadLocal

ThreadLocal 클래스는 각 스레드에서의 값의 지역적인 복사본을 저장하는 데 사용됩니다. 즉, ThreadLocal 변수는 각 스레드에서 고유한 값을 가집니다.

ThreadLocal은 멀티스레드 환경에서 공유 상태를 관리하는 데 유용합니다.

공유 상태를 가진 객체를 여러 스레드가 동시에 액세스하면 동기화 문제가 발생할 수 있습니다. ThreadLocal을 사용하면 각 스레드가 자체 복사본을 가지므로 이러한 문제를 피할 수 있습니다.


ThreadLocal 변수는 get(), set(), remove() 메서드를 통해 액세스할 수 있습니다. get() 메서드는 현재 스레드의 값을 반환하고, set() 메서드는 현재 스레드의 값을 설정하며, remove() 메서드는 현재 스레드의 값을 제거합니다.


요약하자면, Thread는 프로그램의 병렬 실행을 가능하게 하며, ThreadLocal은 각 스레드에서의 값의 지역적인 복사본을 관리하는 데 사용됩니다.