스레드는 프로세스 내에서 실행되는 단위, CPU의 기본 단위를 말합니다.
프로세스가 시작되면 메모리와 리소스가 할당됩니다. 프로세스의 각 스레드는 해당 메모리와 리소스를 공유합니다.
단일 스레드 프로세스에서 프로세스는 하나의 스레드를 포함합니다. 프로세스와 스레드는 동일하며 한 가지만 발생합니다.
하나의 프로세스에서도 여러 개의 스레드를 통해 병렬적으로 작업을 처리할 수 있습니다.
프로세스 | 스레드 |
---|---|
프로세스는 무거운 작업입니다. | 스레드는 더 가벼운 작업입니다. |
각 프로세스에는 고유한 메모리 공간이 있습니다. | 스레드는 자신이 속한 프로세스의 메모리를 사용합니다. |
프로세스 간의 메모리 주소가 다르기 때문에 프로세스 간 통신이 느립니다. | 스레드 간 통신은 동일한 프로세스의 스레드가 자신이 속한 프로세스와 메모리를 공유하기 때문에 프로세스 간 통신보다 빠를 수 있습니다. |
프로세스 간의 컨텍스트 전환은 더 어렵습니다. | 동일한 프로세스의 스레드 간 컨텍스트 전환이 더 쉽습니다. |
프로세스는 다른 프로세스와 메모리를 공유하지 않습니다. | 스레드는 동일한 프로세스의 다른 스레드와 메모리를 공유합니다. |
참고
What’s the Diff: Programs, Processes, and Threads
동시성(Concurrency) vs 병렬성(Parallelism)