쓰레드 (Thread)
- 쓰레드는 병렬 프로그래밍을 위한 기본 단위이며 프로세스 내에서 동작하는 작은 단위이다.
- 쓰레드는 함수 단위로 동작한다.
- 동일한 프로세스 내에서 여러 쓰레드가 동작할 수 있다.
- 동일한 작업을 병렬로 처리할 때 사용한다.
- 쓰레드는 동일한 프로세스 내에서 서로 다른 쓰레드 간의 메모리 공간을 공유하기 때문에 코드, 데이터, 힙 메모리 영역으로 데이터를 공유할 수 있다.
- 상대적으로 적은 오버헤드로 생성 및 관리를 할 수 있다.
- 컨텍스트 스위칭이 프로세스보다 가볍다.
프로세스 (Process)
- 프로세스는 운영체제로부터 할당 받은 작업의 단위이다.
- 프로세스만의 고유한 메모리 영역을 가진다.
- 프로그램의 기본 단위로 하나의 프로그램은 여러 프로세스를 통해 실행될 수 있다.
- 프로세스는 독립적인 메모리 영역을 갖고 있기 때문에 서로 다른 프로세스간의 자원을 공유할 수 없다. 대신 프로세스간 통신을 이용해야만 데이터를 주고 받을 수 있다.
'CS' 카테고리의 다른 글
메모리 인터리빙(Memory Interleaving) (0) | 2024.06.11 |
---|---|
단일 책임 원칙(SRP) (0) | 2024.06.08 |
추상화, 가상화 (0) | 2024.06.05 |
제네릭 (0) | 2024.05.26 |
GUID (0) | 2024.05.24 |