본문 바로가기

cs(with 매일메일)

[260210화] 멀티 쓰레딩에 대해서 설명해 주세요.

하나의 프로세스 내에서 여러 작업을 여러 쓰레드를 통해 동시에 실행할 수 있도록 하는 방식이다. 

 

특징

1. 경량화된 실행 단위

- 낮은 오버헤드 : 같은 프로세스 내에서 실행되므로 컨텍스트 스위칭 비용이 낮으며 스레드 간 전환이 훨씬 가볍고 빠르다. 

- 빠른 전환 : 스레드는 각각 스택과 레지스터를 갖지만, 코드나 힙 메모리 등은 공유하기 때문에 전환 시 재설정해야 할 데이터의 양이 적어 전환 속도가 빠르다. 

 

2. 효율적인 데이터 공유

- 공유 메모리 : 데이터 전달이 빠르다

- 동기화 관리 : 동시에 접근할 경우는 동기화 문제가 있다. 

 

3. 응답성 및 처리 성능 향상

- 병렬 처리 : I/O작업과 CPU직약적 작업을 분리하여 동시에 처리

- 리소스 활용 최적화 : CPU의 멀티코어 환경에서 각 스레드를 개별 코어에 할당하여 병렬 처리가 가능해진다.