본문 바로가기

Back-end/Basic

멀티스레드 프로그래밍

멀티스레드 프로그래밍하나의 프로세스에서 여러 개의 스레드를 만들어 자원의 생성과 관리의 중복을 최소화하는 것입니다.

 

장점

  • 멀티 프로세스에 비해 메모리 자원소모가 줄어듭니다.
  • 힙 영역 통해서 스레드 간 통신이 가능해서 프로세스간 통신보다 간단합니다.
  • 스레드의 컨텍스트 스위칭프로세스의 컨텍스트 스위칭보다 빠릅니다.
    (캐시 메모리를 비우기 않아도 되기 때문)

단점

  • 힙 영역에 있는 자원을 사용할 때는 동기화를 해야합니다.
  • 동기화를 위해서 락을 과도하게 사용하면 성능이 저하될 수 있습니다.
  • 하나의 스레드가 비정상적으로 동작하면 다른 스레드도 종료될 수 있습니다.