728x90
프로세스(Process)와 스레드(Thread)
프로세스(Process)
컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 또는 OS에서 할당한 프로그램 작업 단위
특징
- 독립성 : 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 끼치지 않음.
- 통신 : 프로세스 간 통신이 필요한 경우, 복잡한 메커니즘이 필요(ex 소켓 등)
- 생성 비용 : 프로세스를 생성하고 관리하는 데는 시스템 자원이 많이 필요하며, 많은 시간과 비용이 소요
- 안정성 : 프로세스 간의 오류나 출돌이 발생해도 다른 프로세스는 영향을 받지 않아 시스템 전체의 안정성이 유지
스레드(Thread)
프로세스 내에서 할당된 실행 단위, 모든 프로세스에는 하나 이상의 스레드가 실행된다.
특징
- 공유 메모리 : 스레드는 부모 프로세스의 메모리 공간을 공유 하므로, 스레드 간 데이터 공유가 간편
- 통신 : 스레드는 동일한 프로세스 내에서 직접 통신 할 수 있어 간단히 데이터 공유가 가능
- 생성 비용 : 스레드를 생성하고 관리하는 비용이 상대적으로 낮고 스레드 간 전환도 빠름
- 안정성 : 스레드 간 데이터 공유와 동시성 관리에 주의가 필요, 오류가 발생하면 전체 프로세스에 영향을 끼칠 수 있음
728x90
반응형
'개발 > 기타' 카테고리의 다른 글
[개발 상식]박싱(Boxing)과 언박싱(Unboxing)에 대해 (0) | 2023.11.07 |
---|---|
[개발 상식]태스크(Task)와 코루틴(Coroutine) (0) | 2023.11.06 |
[개발 상식]JSON, XML, CSV의 각 장단점 (0) | 2023.11.05 |
[개발 상식]오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2023.11.04 |
구독중인 게임 개발 유튜버 (0) | 2020.11.19 |
댓글