Multi-Threading

강준우·2023년 2월 4일
0

Multi-threading


  • 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것.
  • 하나의 프로그램에서 동시에 여러개의 일을 수행하는 것 처럼 보이도록 해줌.

Multi-threading의 장단점


장점

  • 프로그램의 일부분(Thread)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 지속되어 사용자에 대한 응답성이 증가한다.

  • 프로세스 내 자운들과 메모리 공유를 하기 때문에 메모리 공간과 싀스템 자원 소모가 줄어든다. 또한 프로세서간 context switching과 달리 Thread간 context switching은 캐시 메모리를 비울 필요가 없기 때문에 더 빠르다.

  • 다중 CPU 구조에서는 각각의 Thread가 다른 프로세서에서 병렬로 수행될 수 있기 때문에 병렬성이 증가한다.

단점

  • 둘 이상의 Thread가 동시에 실행되며 공유 자원에 동시에 접근하는 경우, 데이터와 힙 영역을 공유하기 때문에 예상치 못한 결과가 반환될 수 있다. 따라서 동기화 작업이 필요하다.

  • 동기화 과정을 통해 Thread의 작업 처리 순서와 공유 자원에 대한 접근을 컨트롤 할 수 있지만, 불필요한 동기화의 경우 과도한 lock이 발생할 수 있다.

  • context switching, 동기화 등의 이유 때문에 싱글 코어 멀티 스레딩은 스레드 생성 시간이 오히려 오버헤드로 작용해 단일 스레드보다 느리다.

profile
강준우

0개의 댓글

관련 채용 정보