Multi-Thread

Seokchan Yun·2022년 6월 28일
0

Multi-Thread ?

  • 하나의 프로세스에서 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것을 멀티 쓰레딩이라 한다.

  • 하나의 프로그램에 동시에 여러개의 일을 수행할 수 있도록 해준다.

Advantages of Multi-Threading

  • 프로세스를 이용하여 동시에 처리하던 일을 쓰레드로 구현할 경우
    메모리 사용 공간과 시스템 자원 소모가 줄어들게 된다.

  • 쓰레드간의 통신이 필요한 경우에 별도의 자원을 사용하는 것이 아니라, 전역 변수의 공간(code, data) 또는 동적 할당된 공간(heap) 을 통해 데이터를 주고받을 수 있다.

  • context switching 중 cache memory(PCB) 를 비울 필요가 없다.
    따라서 시스템 처리량이 향상되고 자원소모가 줄어들어 응답속도가 빨라진다.

Disadvantages of multithreading

  • 프로세스와 달리 독립적인 구조, 공간을 소유하지 않아서, 하나의 쓰레드에 문제가 생기면 자원을 공유중인 다른 쓰레드에도 영향을 줄 수 있다.

  • Stack 을 제외한 메모리 영역을 모두 공유하기 때문에 모든 쓰레드가 동시에 접속 가능한 공유자원이 발생 할 수 있다. 공유자원에 대한 동기화를 해줘야함(Mutex/Semaphore/Monitor).

profile
42 Paris developer

0개의 댓글