멀티쓰레딩

하나의 프로세스 내에서 여러 스레드를 통해 여러 작업을 동시에 실행하는 방식입니다.

핵심 특징

1. 경량화된 실행 단위

2. 효율적인 데이터 공유

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

멀티태스킹과의 차이

멀티태스킹이 여러 프로세스를 짧은 시간 단위로 번갈아 실행하는 방식이라면, 멀티쓰레딩은 하나의 프로세스 내부에서 여러 스레드로 작업을 나누는 방식입니다. 프로세스 간 전환보다 스레드 간 전환의 비용이 낮기 때문에, 멀티쓰레딩은 멀티태스킹보다 더 낮은 비용으로 동시성을 확보할 수 있습니다.

주의사항

스레드들이 메모리를 공유하다 보니 경쟁 상태나 교착 상태와 같은 동기화 문제가 발생할 수 있고, 이를 해결하는 과정이 복잡해지거나 디버깅이 어려워질 수 있습니다. 또한 스레드 관리를 소홀히 하면 시스템 자원이 과도하게 사용될 위험도 있습니다.

핵심 정리

멀티쓰레딩은 프로세스 기반 멀티태스킹보다 낮은 비용의 컨텍스트 스위칭과 효율적인 메모리 공유, 빠른 데이터 전달을 가능하게 합니다. 다만 공유 자원에 대한 동기화 문제는 별도로 해결해야 합니다.

→ 멀티 쓰레딩에 대해서 설명해 주세요

CSLOG에서 보기