프로세스와 스레드
멀티태스킹과 멀티스레드
- 멀티태스킹을 지원하기 때문에 여러 개의 프로세스가 동시에 실행 될 수 있다.
- 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 게 멀티스레드
- 스레드의 수는 언제나 코어의 개수보다 많기 때문에 각 코어가 아주 짧은 시간동안 여러 작업을 번갈아 수행하여 여러 작업들이 동시에 수행되는 것처럼 보이게 한다.
- 프로세스 성능은 스레드의 개수에 비례하는 것이 아니다. 하나의 스레드를 가진 프로세스보다 두 개의 스레드를 가진 프로세스가 더 낮은 성능을 보일 수 있다.
멀티스레드의 장단점
장점
- CPU 사용률 향상
- 자원을 효율적으로 사용할 수 있다.
- 사용자에 대한 응답성이 향상
- 작업이 분리되어 코드가 간결해진다
단점
- 멀티스레드 프로세스는 여러 스레드가 같은 프로세스 내에서 자원을 공유하며 작업을 하기 때문에 동기화, 교착상태 같은 문제가 있을 수 있어 신중히 프로그래밍해야한다.