ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 멀티 스레드
    CS 2022. 12. 27. 17:18
    728x90

    스레드

    • 프로세스가 할당받은 자원을 이용하는 실행의 단위
    • 하나의 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 Heap, Data, Code 영역을 공유
    • ( 멀티 스레드의 경우, 이 프로세스의 영역들을 공유 )
    • 하나의 프로세스를 안에서 다양한 작업을 담당하는 최소 실행 단위를 스레드라고 한다.
    • 멀티 스레딩의 경우, 스레드 간의 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시킨다.

     

    멀티스레드

    멀티스레드

    하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다.

    이러한 작업 ( 프로그램 둘 이상을 동시에 실행 )은 컨텍스트 스위칭을 통해서 이뤄진다.

    컨텍스트 스위칭은 엄청 빠르게 일어나면서, 유저의 시선에서는 프로그램이 동시에 수행되는 것 처럼 보인다

     

    멀티스레드의 장점

    1. 응답성 → 멀티 스레드 모델은 에러 발생 시 새로운 스레드를 생성하여 극복한다. 다만, 새로운 스레드 생성이나 놀고 있는 스레드 처리에 비용이 발생한다
    2. 경제성 → 프로세스 내 자원들과 메모리 공유하기에 메모리 공간과 시스템 자원 소모 감소

     

    멀티스레드의 단점

    1. 컨텍스트 스위칭, 동기화 등으로 오버헤드 발생해서 스레드 생성시간 증가
    2. 자원을 공유하기에 락을 위한 동기화 필요
    3. 멀티 스레딩을 위한 OS의 지원 필요

    'CS' 카테고리의 다른 글

    [CS] AOP  (0) 2023.01.04
    [CS] Bean  (0) 2023.01.04
    [CS] 클라우드  (2) 2022.12.27
    [CS] 추상클래스, 인터페이스  (0) 2022.12.27
    [CS] CDN  (0) 2022.12.27
Designed by Tistory.