Java/개념

10. 프로세스(process)와 스레드(thread)

열지희공 2021. 2. 26. 21:34

1. 프로세스(process): 실행 중인 하나의 애플리케이션

예를들어, 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션으 코드를 실행하는데 이것이 프로세스임

 

 

2. 스레드(thread) : 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름

하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 스레드가 두 개라면 두 개의 코드 실행 흐름이 생긴다는 의미

 

3. 멀티 프로세스와 멀티 스레드

멀티 프로세스

운영체제에서 할당받은 자신의 메모리를 가지고 실행하기 때문에 서로 독립적

-> 하나의 프로세스에서 오류가 발생해도 다른 프로세스에게 영향 미치지 x

 

멀티 스레드

하나의 프로세스 내부에서 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있어 다른 스레드에게 영향을 미치게 됨