프로세스와 쓰레드, 멀티쓰레드의 장단점

0

프로세스와 쓰레드

  • 프로세스 : 실행중인 프로그램, 자원(resources, 메모리, cpu 등)과 쓰레드로 구성
  • 쓰레드 : 프로세스 내에서 실제 작업을 수행
    모든 프로세스는 최소한 1개의 쓰레드를 가지고 있다.
    프로세스 : 쓰레드 = 공장 : 일꾼
  • 싱글 쓰레드 프로세스 : 자원 + 쓰레드
  • 멀티 쓰레드 프로세스 : 자원 + 쓰레드 + 쓰레드 + ...
    -> 우리가 쓰는 프로그램은 대부분 멀티쓰레드로 작성돼있음

멀티쓰레드의 장단점

  • 장점
    • 시스템 자원을 보다 효율적으로 사용할 수 있다.
    • 사용자에 대한 응답성(responseness)이 향상된다
    • 작업이 분리되어 코드가 간결해진다.
      → 여러모로 좋다.
  • 단점
    • 동기화(synchronization)에 주의해야 한다.
    • 교착상태(dead-lock)가 발생하지 않도록 주의해야 한다.
    • 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야 한다.
      → 프로그래밍 할 때 고려해야 할 사항들이 많다.
profile
백엔드를 공부하고 있습니다.

0개의 댓글