- 멀티 스레드
- 한 프로세스 내에서 여러 스레드를 두는 것
- 멀티 프로세스 대신 멀티 스레드를 사용하는 이유
- 스택을 제외한 자원을 공유하기 때문에 자원의 효율성 증대
- 프로세스 생성 비용보다 스레드 생성 비용이 적다.
- 프로세스 간 컨텍스트 스위칭 시 오버헤드가 크지만 스레드는 메모리를 공유하기 때문에 자원 소모가 적다.
- 처리 비용 및 응답 시간 단축
- 프로세스 간 통신(IPC)보다 스레드 간의 통신 비용이 적다.
- 스레드 간의 전환 속도가 훨씬 빠르다.
- 스택을 제외한 자원을 공유하기 때문에 자원의 효율성 증대
- 멀티 스레드 사용 시 주의할 점
- 힙 영역을 공유하기 때문에 힙 영역 자원 사용 시 동기화 필수
- 동기화를 위한 락이 과도하게 사용되면 성능이 저하된다.
- 일부 스레드가 종료되면 프로세스 전체가 종료될 수 있다.
'Computer Science' 카테고리의 다른 글
[운영체제] Context Switching, 컨텍스트 스위칭 (0) | 2022.03.03 |
---|---|
[운영체제] 동기와 비동기의 차이 (0) | 2022.03.03 |
[운영체제] 사용자 수준 쓰레드와 커널 수준 쓰레드 (0) | 2022.03.02 |
[운영체제] 프로세스와 쓰레드의 차이 (0) | 2022.03.01 |
[운영체제] Deadlock, 교착상태의 개념과 조건 (0) | 2022.02.28 |