프로그램
프로세스
스레드
- 프로세스에서 실행되는 작업
- 프로세스는 기본적으로 하나의 스레드로 구성
- 경우에 따라 여러개의 스레드로 구성이 가능하다(= 멀티스레딩)
동시성?
- 프로세스에선 하나의 스레드만 동작하게 되지만, 다른 스레드와 빠른속도로 번걸아 가면서 동작하면 두개의 스레드가 동시에 작업을 진행하는 것처럼 보이는데, 이것을 바로 동시성이라고 한다.
병렬성?
- 하지만 만약에 프로세스가 하나가 아니라 여러개라면 각각의 프로세스가 가지고 있는 스레드를 독립적으로 진행 할 것이다. 이를 병렬성이라고 칭한다.
멀티 스레딩? 멀티 프로세싱?
-
멀티스레딩의 경우 동시성 프로그래밍에 해당되며, 동시세 실행 "되는 것처럼 보이는 것"이다.
-
여러개의 스레드를 번갈아 가면서 실행하는 것
-
멀티 프로세싱은 말 그대로 여러개의 프로세스를 사용해서 각 프로세스가 진행하는 독립적인 프로세스를 실행하는것.
-
실제로 작업이 동시에 실행하는것.
※ 멀티 프로세싱과 멀티 스레딩 중에서는 멀티 프로세싱이 비용이 많이 들어간다.