728x90
Q. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.
A.
프로세스는 컴퓨터에서 실행되는 독립적인 프로그램의 인스턴스입니다.
각 프로세스는 자체 메모리 공간과 시스템 자원(CPU 시간, 파일 및 입출력 장치)을 할당받고,
프로세스는 서로 완전히 독립되어 있어 하나의 프로세스가 오류를 일으켜도 다른 프로세는 오류를 받지 않습니다.
쓰레드는 어떠한 프로그램 내에서, 특히 로세스 내에서 실행되는 독립적인 실행 흐름의 단위입니다.
같은 프로세스 내에서 다른 쓰레드와 공유 메모리 공간과 자원을 사용하며,
이로 인해 쓰레드 간 데이터 공유와 통신이 간단하게 이루어집니다.
하지만 이러한 공유로 인해 쓰레드 간의 동기화 충돌 문제가 발생할 수 있습니다.
프로세스는 서로 완전히 독립되어 있어 하나의 프로세스의 오류가 다른 프로세스에 영향을 미치지 않지만,
프로세스 간의 통신이 복잡하고 비용이 많이 들고, 자신만의 고유 공간과 자원을 할당받아 사용합니다.
반면에, 쓰레드는 같은 프로세스에서 실행되며,
쓰레드 간의 통신 비교적 간단하고 빠른 것에 비해,
다른 스레드의 공간과 자원을 공유하면서 사용한다는 차이점이 있습니다.
'학습 내용 정리 > 기술 면접 준비' 카테고리의 다른 글
쿼리 최적화 (0) | 2023.09.13 |
---|---|
멀티 프로세스와 멀티 쓰레드 (0) | 2023.09.12 |
TDD (0) | 2023.09.10 |
CI/CD (0) | 2023.09.08 |
클래스형과 함수형 프로그래밍 (0) | 2023.09.07 |