스레드 실습

스레드 종료와 공유 상태

pthread, Python threading, 스레드 풀은 API는 달라도 작업을 언제 시작하고 언제 회수할지 정하는 구조가 같습니다.

create작업 함수와 인자 전달
run공유 상태 접근
join종료와 결과 회수
pool반복 작업 재사용
pthread 기본

pthread_create는 작업 함수를 시작하고 pthread_join은 종료를 기다립니다.

Python threading

I/O 대기에는 유용하지만 CPU 바운드 작업은 GIL 때문에 프로세스 병렬성이 더 맞을 수 있습니다.

데몬 스레드

백그라운드 보조 작업에 맞지만 프로세스 종료 때 정리 기회를 잃을 수 있습니다.

스레드 풀

큐와 워커를 재사용해 스레드 생성 비용을 줄입니다.

스레드 안전성

공유 객체를 수정하는 함수는 락, 불변 데이터, 소유권 규칙 중 하나로 보호되어야 합니다.

패턴 선택

수명이 짧고 공유 상태가 적은 병렬 작업은 직접 생성, 반복 요청 처리는 풀, I/O 다중화는 async를 검토합니다.