멀티스레드 프로그래밍은 하나의 프로세스에서 여러 개의 스레드를 만들어 자원의 생성과 관리의 중복을 최소화하는 것입니다.
장점
- 멀티 프로세스에 비해 메모리 자원소모가 줄어듭니다.
- 힙 영역을 통해서 스레드 간 통신이 가능해서 프로세스간 통신보다 간단합니다.
- 스레드의 컨텍스트 스위칭은 프로세스의 컨텍스트 스위칭보다 빠릅니다.
(캐시 메모리를 비우기 않아도 되기 때문)
단점
- 힙 영역에 있는 자원을 사용할 때는 동기화를 해야합니다.
- 동기화를 위해서 락을 과도하게 사용하면 성능이 저하될 수 있습니다.
- 하나의 스레드가 비정상적으로 동작하면 다른 스레드도 종료될 수 있습니다.
'Back-end > Basic' 카테고리의 다른 글
Jenkins 설정 (0) | 2021.11.23 |
---|---|
Thread-safe 하다는 의미와 설계하는 법 (0) | 2021.11.22 |
동기와 비동기의 차이(블로킹, 넌블로킹) / 장단점 (0) | 2021.11.21 |
컨텍스트 스위칭 (0) | 2021.11.21 |
프로세스와 스레드의 차이 (0) | 2021.11.21 |