Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

멀티 프로세스와 멀티 스레드의 차이점 #8

Open
yeonjaee opened this issue Jul 2, 2023 · 1 comment
Open

멀티 프로세스와 멀티 스레드의 차이점 #8

yeonjaee opened this issue Jul 2, 2023 · 1 comment

Comments

@yeonjaee
Copy link
Owner

yeonjaee commented Jul 2, 2023

No description provided.

@yeonjaee
Copy link
Owner Author

yeonjaee commented Jul 2, 2023

멀티 프로세스와 멀티 스레드는 컴퓨터 시스템에서 동시성을 관리하는 두 가지 주요 방법입니다. 각 방식에는 장단점이 있으며, 다음과 같은 주요 차이점이 있습니다:

  1. 별도의 주소 공간: 멀티 프로세스는 각 프로세스가 고유한 주소 공간을 가지고 있으므로, 한 프로세스에서 일어나는 문제가 다른 프로세스에 영향을 주지 않습니다. 반면에 멀티 스레드는 하나의 프로세스 내에서 여러 스레드가 동작하며, 이들 스레드는 동일한 메모리 공간을 공유합니다. 이로 인해 스레드 간 데이터 공유가 더욱 쉽지만, 한 스레드에서 발생한 오류가 다른 스레드에 영향을 줄 수 있습니다.

  2. 리소스 사용: 멀티 프로세스는 각 프로세스가 독립적인 실행 컨텍스트를 가지기 때문에, 시스템 리소스를 더 많이 사용합니다. 반면에 멀티 스레드는 각 스레드가 프로세스의 실행 컨텍스트를 공유하기 때문에, 리소스를 효율적으로 사용할 수 있습니다.

  3. 프로세스/스레드 생성과 관리: 프로세스를 생성하고 관리하는 것은 상당한 시스템 오버헤드를 유발하며, 이는 시간과 리소스가 많이 소모되는 작업입니다. 반면에 스레드는 프로세스 내에서 생성하고 관리하기 때문에 비교적 오버헤드가 적습니다.

  4. 컨텍스트 스위칭: 멀티 프로세스의 경우, 컨텍스트 스위칭(프로세스 간 전환)은 비교적 무거운 작업입니다. 반면에 멀티 스레드에서는 같은 프로세스 내부에서 스레드 간 스위칭이 발생하기 때문에, 컨텍스트 스위칭이 더 빠르고 경제적입니다.

두 기법은 본질적으로 병렬 처리를 가능하게 하지만, 그 사용법과 적용 분야는 상황에 따라 달라집니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant