프로세스 내에서 실행되는 여러 흐름의 단위 (프로세스의 실행 단위)
스레드는 프로세스 내에서 각각 stack은 독립적으로 할당
스택 독립적 → 독립적인 함수 호출 가능 → 독립적인 실행 흐름 추가 가능
PC 레지스터 값 또한 독립적으로 가지고 있다.
레지스터(cpu 레지스터)
CPU가 요청을 처리하기 위해 필요한 데이터를 일시적으로 저장하는 기억 장치
PC 레지스터
레지스터의 한 종류로서 실행되어야할 명령어의 위치를 가리키고 있다.
일반 스레드와 거의 차이가 없으며, JVM이 운영체제의 역할을 한다
자바에는 프로세스 존재 ❌, 스레드만 존재
자바 스레드는 JVM에 의해 관리되는 실행 단위 코드 블록 (스레드 스케줄링은 전적으로 JVM에 의해 이루어짐)
JVM이 관리하는 스레드 정보
개발자는 자바 스레드 작동할 코드를 작성하고, 코드가 실행을 시작할 수 있도록 JVM에게 요청하는 것
WAS(웹 컨테이너)가 실행 될 때 DB연결을 위해 미리 일정수의 connection 객체를 만들어 Pool에 담아 뒀다가 사용자의 요청이 발생하면 Pool에서 생성되어 있는 Connection 객체를 넘겨주고 사용자가 사용이 끝나면 Connection 객체를 다시 Pool에 반환하여 보관하는 기법이다.
결국 pool이라는 기법은 한정된 자원을 효율적으로 사용할 수 있도록 해주는 것을 목적으로 하는 기법 같다.