파이썬 threading, multiprocessing, concurrent.futures, asyncio, Celery

파이썬 threading, multiprocessing, concurrent.futures, asyncio, Celery

Category
Python
Tags
Python
Celery
Published
June 8, 2025
Last updated
Last updated November 11, 2025

개요

요약 비교

라이브러리
도입 버전
병렬성 형식
강점
제약/단점
threading
Python ≥1.5.2
OS 스레드
- I/O-bound 작업에서 간단히 동시성 구현 가능- 표준 라이브러리로 별도 설치 불필요
- GIL로 인해 CPU-bound 병렬 처리 불가- 스레드 생성·컨텍스트 스위칭 오버헤드- 데드락·레이스 컨디션 위험
multiprocessing
Python ≥2.6
OS 프로세스
- GIL 제약 없이 진정한 CPU-bound 병렬 처리- 독립 메모리 공간으로 안정성 ↑
- 프로세스 생성·통신(IPC) 오버헤드 큼- 메모리 복제 비용 발생
concurrent.futures
Python ≥3.2
스레드/프로세스 풀
- ThreadPoolExecutor, ProcessPoolExecutor 제공- 통일된 고수준 인터페이스
- 내부는 threading/multiprocessing 의존- 근본적 GIL 제약은 동일
asyncio
Python ≥3.4
협력형 코루틴 (이벤트루프)
- 수만 개 동시 I/O-bound 태스크 처리 가능- 스레드 오버헤드 거의 없음
- 블로킹 코드가 이벤트 루프 전체를 멈춤- 외부 라이브러리의 async 지원 필요
Celery
v0.9.0 (2011)
분산 워커 기반 태스크 큐
- 다수의 워커에 작업 분산 가능- 비동기·주기적 작업 스케줄링 지원- Redis/RabbitMQ 등 브로커 선택 가능
- 별도 메시지 브로커 구성 필요- 운영 복잡도(모니터링, 장애 복구) ↑