TCP IP

멀티 프로세스 vs 멀티 쓰레드

joo_coding 2025. 4. 15. 23:04

🧑‍🤝‍🧑 멀티프로세스(Multi-Process)

멀티프로세스는 여러 명의 일꾼(프로세스)이 각각 따로따로 일하는 거야.

예시:

  • 너는 라면을 끓이고
  • 너 친구는 계란을 삶고
  • 또 다른 친구는 김치를 자르고 있어

각자 따로 움직이고, 서로 간섭하지 않아.
하지만 같이 협력하려면 대화(데이터 공유)가 필요해, 그게 좀 복잡할 수 있어.

정리:

  • 일꾼(프로세스)이 여러 명
  • 각자 자기 방에서 일해 (메모리를 따로 씀)
  • 서로 대화하려면 문을 열고 "야~" 하고 말해야 해 (복잡)
  • 충돌은 잘 안 나 (서로 방이 다르니까)

🧵 멀티쓰레드(Multi-Thread)

멀티쓰레드는 한 명이 여러 팔을 써서 동시에 여러 일을 하는 거야.

예시:

  • 사람 한명이 혼자 일하지만
  • 오른손으로 라면을 끓이고
  • 왼손으로 계란을 삶고
  • 발로 김치를 자르고 있어

한 사람이지만 여러 팔(쓰레드)을 써서 동시에 일하는 거야.
이 사람은 한 방에서 일해서(같은 메모리), 서로 금방 도와줄 수 있어.
하지만 한 손이 실수하면 다른 손도 같이 망칠 수 있어!

정리:

  • 일꾼은 한 명이지만, 팔(쓰레드)을 여러 개 씀
  • 같은 방에서 일해 (메모리 공유함)
  • 서로 대화가 쉬워 (같은 머리 쓰니까)
  • 하지만 한 팔이 실수하면 다른 팔도 영향 받을 수 있음 (충돌 조심!)

[멀티프로세스]
🧑   🧑   🧑
[방1][방2][방3]  <-- 각자 따로 방에서 일

[멀티쓰레드]
🧍‍♂️
[방 하나]
🖐️✋🦶  <-- 한 사람(프로세스)이 여러 팔(쓰레드)로 동시에 일