728x90
용어정리
- 프로그램 : 어떤 작업을 위해 실행할 수 있는 파일
- 프로세스 : 컴퓨터에서 연속적으로 실행되고 있는 프로그램
- 스레드 : 프로세스 내에 실행되는 여러 흐름의 단위
- 자바 스레드 : JVM가 운영체제 역할을 하는 스레드
1. 프로그램
- 하드웨어에 저장된 작업을 할 수 있는 파일
2. 프로세스
- 실행된 프로그램
- 운영체제에 의해 메모리에 올라온 상태
- 각각 독립된 메모리영역(Code, Data, Stack, Heap)을 할당받는다
- 각 프로세스는 별도의 주소 공간에서 실행된다
- 프로세스 상호간에 자원을 공유할 수 없다
- IPC로 다른 프로세스의 자원에 접근가능하다
3. 스레드
- 프로세스 내부에 Stack에 존재하는 코드
- 프로세스의 Code, Data, Heap 영역을 공유한다
- 스레드는 별도의 Register와 Stack 존재
멀티 프로세스 vs 멀티 스레드
멀티스레드 장점
- System call, Context Switching을 줄일 수 있다
- 프로세스 내 스레드 간의 자원공유가 간단하다
- 프로세스 전환 속도보다 스레드 전환속도가 빠르다
멀티 스레드 단점
- 스레드는 동기화 문제를 가진다.
728x90