토픽 11 / 85·프로세스 관리
멀티스레딩 (Multithreading)
멀티스레딩 (Multithreading)
하나의 프로세스 내에서 여러 스레드를 동시에 실행하여 병렬성과 응답성을 향상시키는 프로그래밍 기법
목적: 병렬 처리, 응답성 향상, 자원 공유, CPU 활용률 증대
특징: 공유 메모리, 경량 병렬, 빠른 통신, 동기화 필요
장점: 응답성(UI 분리), 자원 공유(메모리 절약), 경제성(빠른 생성), 확장성(멀티코어 활용)
단점: 동기화 복잡도, 레이스 컨디션, 데드락, 디버깅 어려움
동기화 문제: 레이스 컨디션(Race Condition), 데드락(Deadlock), 기아(Starvation)
동기화 기법: 뮤텍스(Mutex), 세마포어(Semaphore), 모니터(Monitor), 조건 변수(Condition Variable)
적용사례: 웹 서버(요청 처리), GUI(백그라운드 작업), 게임(렌더링+물리), 멀티미디어
비교: 멀티스레딩(공유/동기화) vs 멀티프로세싱(독립/안전)
연관: 스레드, 동기화, 뮤텍스, 세마포어, 레이스 컨디션