insung.log
로그인
insung.log
로그인
[CS] 프로세스와 스레드의 차이
insung
·
2025년 5월 2일
팔로우
0
CS
Thread
process
스레드
프로세스
CS
목록 보기
14/20
프로세스 (Process)
독립적인 실행 단위
실행 중인 프로그램 하나하나를 프로세스라고 칭함.
각 프로세스는 독립적인 메모리 공간을 가지고 있어서 서로의 자원에 직접 접근할 수 없음.
특징
독립성
다른 프로세스에 영향을 주지 않음.
하나의 프로세스에 문제가 생겨도 다른 프로세스는 안전.
자원 할당
운영체제로부터 독립적인 메모리, 파일, 장치 등의 자원을 할당.
생성 및 종료
프로세스를 새로 만들거나 종료하는 것은 비교적 많은 시스템 자원을 소모하는 작업.
통신
프로세스 간에 데이터를 주고받으려면 파이프, 소켓, 메시지 큐 등 복잡한 통신 방법을 사용.
스레드 (Thread)
프로세스 내의 실행 흐름 단위
하나의 프로세스 내에서 여러 개의 실행 흐름이 동시에 진행될 수 있도록 하는 단위.
특징
공유 자원
같은 프로세스 내의 스레드들은 메모리, 파일, 코드 등의 자원을 공유.
경량성
스레드를 생성하고 종료하는 것은 프로세스에 비해 훨씬 적은 자원을 소모하고 빠름.
동시성
여러 스레드가 번갈아 가며 또는 실제로 동시에 작업을 수행하여 하나의 프로세스가 여러 작업을 효율적으로 처리할 수 있게 해줌
통신
같은 프로세스 내의 스레드들은 메모리를 공유하므로 통신이 훨씬 쉽고 빠름.
핵심적인 차이점
특징
프로세스 (Process)
독립성 높음 (자원 격리)
스레드 (Thread)
- 독립성 낮음 (자원 공유)
자원 할당
프로세스 (Process)
독립적인 자원 할당
스레드 (Thread)
프로세스 자원 공유
생성/종료!
프로세스 (Process)
자원 소모 큼, 느림
스레드 (Thread)
자원 소모 작음, 빠름
통신
프로세스 (Process)
복잡하고 느림
스레드 (Thread)
간단하고 빠름
언제 무엇을 사용해야하는가?
프로세스
완전히 독립적인 작업들을 동시에 실행해야 하거나, 하나의 작업 실패가 다른 작업에 영향을 주지 않아야 할 때 유용.
예를 들어, 웹 브라우저에서 여러 개의 탭을 각각 다른 프로세스로 실행하는 것.
스레드
하나의 프로그램 내에서 여러 작업을 동시에 처리하여 응답성을 높이거나 효율성을 극대화하고 싶을 때 유용.
예를 들어, 워드 프로세서에서 문서 편집과 맞춤법 검사를 동시에 수행하는 것
insung
안녕하세요 프론트엔드 관련 포스팅을 주로 하고 있습니다
팔로우
이전 포스트
[CS] 기본 CS (자료구조, 메모리, 프로세스와 프로세서)
다음 포스트
[CS] IPv4, IPv6 그리고 Subnet마스크
0개의 댓글
댓글 작성