스레드(Thread) 란?
- 하나의 프로세스 내에서 여러 개의 실행 흐름을 두어 작업을 효울적으로 처리하기 위한 모델이다.
- 여러 프로세스가 공유하는 하나의 스레드가 수행 될 수 없다.
- 어떤 프로세스든 하나 이상의 스레드가 수행이 된다.
- 스레드가 1개라면 단일스레드, 2개 이상이라면 다중스레드 이다.
스레드(Thread) 사용 이유
- 메모리가 절약된다.
- 자원을 할당하는 과정도 줄어들고 오버헤드를 더 줄일 수 있다.
- 통신 비용이 적으므로 작업들 간 통신 비용이 절감된다.
프로세스 란?
프로세스는 실행중인 프로그램을 의미하며 완전히 독립적인 수행 단위이다.
스레드(Thread)와 프로세스 차이점
앞서 말한것철 프로세스는 독립적이기 때문에 메모리 영역을 다른 프로세스와 공유를 하지 않는다.
반면에 스레드는 해당 스레드를 위한 스택을 생성할 뿐 프로세스 내의 메모리를 공유해서 사용이 가능하다.
구분 |
멀티프로세싱 | 멀티태스킹 | 멀티 스레드 |
관점 |
시스템 관점 | 프로그램 외부에서의 관점 |
프로그램 내부에서의 관점 |
의미 |
CPU 여러개에서 동시에 여러개의 프로세스 수행 |
CPU 1개에서 동시에
여러 프로그램을 실행 |
프로세서 1개가 동시에 여러 스레드를 실행 |
예시 | 다수의 송금거래를 동시에
처리하는 은행전산 시스템 |
카톡,유튜브,은행업무
동시에 사용 |
프로그램 안에서 실행되는 코드흐름이 여러개 |