Process 와 Thread의 차이

2019. 12. 3. 15:33Study

1. 프로세스 (Process) 란

 

º 사전적 의미

어떤 작업을 위해 실행할 수 있는 파일

 

- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스

- 운영체제로 부터 시스템 자원을 할당받는 작업의 단위

- 동적인 개념으로는 실행된 프로그램을 의미

 

특징

- 프로세스는 실행될 때 운영체제로부터 독립된 메모리 영역을 할당 받습니다. (Code, Data, Stack, Heap)

 

- 기본적으로 하나의 프로세스가 생성되면 하나의 쓰레드가 같이 생성됩니다. 이를 메인 쓰레드라고 부릅니다.

 

-  각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없습니다.

(독립적인 개체이기 때문)

 

2. 스레드 (Thread) 란

 

º 사전적 의미

프로세스 내에서 실행되는 여러 흐름의 단위

 

- 프로세스의 특정한 수행 경로

- 프로세스가 할당받은 자원을 이용하는 실행의 단위

 

특징

- 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유합니다.

 

- 하나의 스레드가 프로세스 자원을 변경하면, 다른 이웃 스레드(sibling thread)도 그 변경 결과를 즉시 볼 수 있습니다.


- 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들 heap, Code, Data 공간을 같은 프로세스 내에 스레드끼리 공유하면서 실행됩니다.

 

'Study' 카테고리의 다른 글

synchronized란 무엇일까?  (0) 2020.02.14
LinkedList 와 ArrayList의 특징  (0) 2020.01.13
BufferedReader 와 BufferedWriter  (0) 2019.10.29
StringBuffer란 무엇일까?  (0) 2019.10.29
람다(Lambda)란 무엇일까?  (2) 2019.10.23