쓰레드 이전에 프로그램에 대해 알아야 한다
프로그램
- 정의 : 디스크나 다른 저장 매체에 저장된 실행 가능한 코드와 관련 데이터의 집합
- 특징 : 정적인 상태로 사용자나 시스템에 의해 실행될 때까지 활성화되지 않습니다.
프로세스
- 정의 : 프로그램이 시작되면 생성되는 프로그램의 인스턴스.
- 특징 : 자체 메모리 주소 공간과 시스템 자원을 가지며, 프로그램의 코드를 실제 메모리에 로드하여 실행됨.
프로그램과 프로세스의 차이
- 프로그램의 하나의 인스턴스가 프로세스 (프로그램이 실제 메모리에 코드가 실행된 상태)
- 동일한 프로그램에 여러개의 프로세스로 실행될 수 있다. 각 프로세스는 독립된 메몰리 공간에서 실행된다.
인스턴스
- 특정 클래스 또는 타입의 실제 구현을 의미
- 클래스의 특정 실체화된 객체나 프로그램이 메모리에 로드되어 실행되는 동안의 상태를 지칭
스레드
- 정의 : 프로세스 내에서 실행되는 작업의 흐름
- 특징 : 하나의 프로세스는 하나 이상의 스레드를 가질 수 있으며 이들 스레드는 프로세스의 자원을 공유한다.
- 하나의 프로그램 안에 메인 스레드를 무조건 포함해야 한다.
