컴퓨터 세상에는 Thread를 2가지 종류로 분류하는데 이것을 이해하기 위해서는 먼저 CPU에 대해서 알아야 한다. CPU는 컴퓨터의 뇌를 담당하는 역할을 한다. 즉, 연산을 수행한다. 여기서 실질적으로 연산을 수행하는 요소가 스레드이다.
CPU에서 코어(Core)는 물리적 스레드를 N개 가지고 있고 이 N개의 스레드는 물리적인 코어를 논리적으로 나눈 것을 의미하며, 이렇게 물리적인 코어를 논리적으로 나눈 코어를 물리적인 스레드라고 한다.
물리적 스레드는 병렬성과 연관이 있다.
소프트웨어적으로 생성되는 스레드를 의미하며, Java 프로그래밍에서 사용되는 스레드가 대표적인 예다. 논리적인 스레드는 우리가 흔히 말하는 프로세스 내에서 실행되는 세부 작업의 단위가 된다.
논리적인 스레드는 메모리가 허용하는 범위 내에서 얼마든지 만들 수 있다. 하지만, 물리적인 스레드의 가용 범위내에서 실행될 수 있어야 한다.
논리적인 스레드는 물리적 스레드와 N대1로 매핑된다.
논리적 스레드는 동시성과 연관되어 있다.
Virtual Threads in Spring Boot
https://lh3.googleusercontent.com/Utp9KnA-I8FwyBZMWCYP7X5aHKf0__UoSlip8DxTKNPP8ZzaI0AtFFSwc4qVJETbZzOhvPHIqlqtNA-VK7NtQpLYYGdC4VHmcliLJT4nz__W24UXCzHzQ9XBYBSebzvQ1le62jImhwFaZouv3g
What is the Virtual Thread
가상 스레드는 자바의 특징으로써 소개되었고, 이것은 동시성을 단순화하는 것을 목표로 했다. Virtual threads는 매우 가볍고 OS가 아닌 JVM에 의해서 관리되어 진다. Virtual thread는 사용하기 쉽고 효율적으로 설계되어 기존 자바 스레드에 비해 동시성 프로그래밍을 위한 더 간단한 모델을 제공한다.