프로세스 (Process)
프로세스는 운영체제에서 독립적으로 실행되는 프로그램의 인스턴스를 의미한다. 각 프로세스는 별도의 메모리 공간을 가진다.
프로세스는 자신만의 주소 공간데이터 스택 등을 가진다.
프로세스 간의 통신은 Inter-Process Communication (IPC) 메커니즘을 사용한다.

 


스레드 (Thread)
스레드는 프로세스 내에서 실행되는 실행 흐름의 단위다. 모든 프로세스는 하나 이상의 스레드를 가진다.
스레드들은 같은 프로세스 내에서 메모리와 자원들을 공유한다. 따라서 스레드 간의 통신은 상대적으로 간단하다.
그러나, 이러한 메모리 공유로 인해 동기화 문제가 발생할 수 있다.

 


코루틴 (Coroutine)
코루틴은 프로그램의 흐름을 동기적으로 쓰레드와는 다르게 병렬적으로 진행하는 방식이다.
코루틴은 스레드와는 달리 하나의 실행 흐름에서 멈추고 다시 시작할 수 있는 여러 진입점을 가질 수 있다.
코루틴은 경량화된 '스레드'와 같은 것으로 생각할 수 있지만, 실제로 OS 레벨의 스레드와는 구분되어 작동한다.

+ Recent posts