1 분 소요

멀티 스레드(Multi thread)

멀티 스레드는 하나의 프로세스(Process) 내에서 여러 개의 스레드(Thread)를 동시에 실행하는 것을 말한다. 이러한 멀티 스레드는 하나의 스레드에서 발생한 작업이 다른 스레드에게 영향을 미치지 않도록 독립적으로 실행되는 것이다.

멀티 스레드의 이점

멀티 스레드를 사용하면 여러 가지 이점이 존재한다.

  1. 멀티 스레드는 여러 가지 작업을 동시에 처리할 수 있어 전체적인 처리 속도가 향상된다.
  2. 스레드 간의 통신을 통해 데이터를 공유할 수 있어서 효율적인 데이터 처리가 가능하다.
  3. 멀티 스레드는 블로킹 연산(Blocked Operation)이 발생할 경우 다른 스레드가 작업을 계속할 수 있어서 전체적인 응답성이 향상된다는 점이 있다.

멀티 스레드의 문제점

멀티 스레드를 사용할 경우 발생할 수 있는 문제점도 존재한다.

  1. 스레드 간의 데이터 공유는 동기화 문제(Synchronization Issue)를 발생시킬 수 있다.
  2. 하나의 스레드에서 발생한 예외(Exception)가 다른 스레드에도 영향을 미칠 수 있다.
    • 즉, 멀티 스레드를 사용할 때는 동기화와 예외 처리에 대한 신경을 많이 쓰고 주의해야 한다.

멀티 스레드와 멀티 프로세스

멀티 스레드와 멀티 프로세스는 모두 여러 작업을 동시에 처리하는 방식이지만, 그 방식과 특징이 다르다.

  • 멀티 프로세스
    • 여러 개의 프로세스를 동시에 실행하여 여러 작업을 처리하는 방식
    • 각각의 프로세스는 독립적 실행 및 각각 자신만의 고유한 메모리 영역을 가지고 있다.
    • 각각의 프로세스는 서로 영향을 받지 않기 때문에 안정적인 처리가 가능
    • 하지만 프로세스간 통신이 필요할 경우, 별도의 IPC(Inter-Process Communication)기술이 요구
  • 멀티 스레드
    • 하나의 프로세스 안에서 여러 개의 스레드를 동시에 실행하여 여러 작업을 처리하는 방식
    • 프로세스의 메모리 영역을 공유하기 때문에, 스레드 간 데이터 공유가 용이하며, IPC 기술을 사용하지 않아도 된다.
    • 하지만 스레드 간 공유 자원에 대한 동기화 문제가 발생할 수 있고, 하나의 스레드가 문제를 일으키면 전체 프로세스에 영향을 끼칠 수 있다.
  • 결론적으로는, 멀티 프로세스는 안정성과 격리성이 뛰어나지만, 자원 소모가 크고, IPC가 필용하다는 단점을 가지고 있다. 반면에, 멀티 스레드는 자원 소모가 적고, IPC가 필요하지 않다는 장점이 있지만, 동기화 문제와 안정성에 대한 문제가 발생할 수 있다. 따라서, 멀티 스레드와 멀티 프로세스는 각각의 특징과 장단점을 고려하여 상황에 맞게 선택하여 사용해야 한다.

참고 사이트 멀티 스레드와 멀티 프로세스 - https://www.guru99.com/difference-between-multiprocessing-and-multithreading.html

업데이트: