프로그램
작업을 수행하는 명령어 집합
프로세스
실행중인 프로그램
스레드
프로세스에서 실행되는 작업
프로세스는 기본적으로 하나의 스레드로 구성된다. 경우에 따라서는 여러개의 스레드로 구성이 가능하다(멀티스레딩)
*프로세스 ------------------> 하나의 스레드
*프로세스 --스레드1--.> 스위치--> --스레드1-->
--스위치-->---스레드2-->--스위치--->
하나의 프로그램에서 여러개의 기능이 동시에 실행되는 것을 볼수 있다.
이는 하나의 프로세스에 여러개의 스레드가 있고, 스레드들이 스위치되며 진행이 되는 것이다. 스레드가 스위치 되는 속도가 빨라서 동시에 진행되는 것처럼 보일 뿐 실제로는 스레드간의 스위치가 발생하고 있다.
실제로는 하나의 프로세스에서는 하나의 스레드만 가능하다.
멀티스레딩
동시성프로그래밍
동시에 실행되는 것처럼 보일뿐 실제로는 스레드 여러개를 번갈아 가면서 실행
멀티프로세싱
병렬성프로그래밍
실제로 작업이 동시에 실행되는 것이다. 프로세스를 여러개 만들어서 동시에 실행된다.