프로세스는 실행중인 프로그램을 의미합니다.
스레드는 실행 제어만 분리한 것을 의미합니다.
프로세스는 운영체제로부터 자원을 할당받지만,
스레드는 프로세스로부터 자원을 할당받고, 프로세스의 코드/데이터/힙영역을 공유하기 때문에 좀 더 효율적으로 통신할 수 있습니다.
또한 컨텍스트 스위칭도 캐시 메모리를 비우지 않아도 되는 스레드쪽이 빠릅니다.
그리고, 스레드는 자원 공유로 인해 문제가 발생할 수 있으니 이를 염두에 둔 프로그래밍을 해야합니다.
한 프로세스 안에 여러 개의 스레드가 생성될 수 있습니다.
'Back-end > Basic' 카테고리의 다른 글
Thread-safe 하다는 의미와 설계하는 법 (0) | 2021.11.22 |
---|---|
멀티스레드 프로그래밍 (0) | 2021.11.21 |
동기와 비동기의 차이(블로킹, 넌블로킹) / 장단점 (0) | 2021.11.21 |
컨텍스트 스위칭 (0) | 2021.11.21 |
OAuth에 대해서 간단히 설명 (0) | 2021.11.21 |