concurrent 패키지
concurrent 패키지
concurrent 패키지는 파이썬 표준 라이브러리에서 병렬·동시 실행을 위한 두 모듈을 묶은 패키지예요.
같은 프로세스 안에서 여러 작업을 동시에 수행하거나 여러 인터프리터를 독립적으로 실행하고 싶을 때 사용해요.
첫 번째 모듈은 concurrent.futures — 병렬 태스크 실행 (Launching parallel tasks)이에요.
스레드 풀(ThreadPoolExecutor)이나 프로세스 풀(ProcessPoolExecutor)을 이용해 작업을 비동기로 실행하고 결과를 Future 객체로 받을 수 있게 해 주는 고수준 인터페이스예요.
작업 제출과 결과 수집이 간단해서 병렬 처리의 가장 흔한 진입점이에요.
두 번째 모듈은 concurrent.interpreters — 같은 프로세스 안의 여러 인터프리터 (Multiple interpreters in the same process)예요.
하나의 프로세스 안에 여러 개의 독립된 파이썬 인터프리터를 만들어, 각 인터프리터가 격리된 상태로 코드를 실행하게 해요.
인터프리터 간 통신 채널을 통해 데이터를 주고받을 수 있어요.
GIL과 인터프리터 전역 상태 때문에 생기는 문제를 피할 수 있는 병렬성 모델을 제공해요.
concurrent.futures는 스레드/프로세스 풀 위에 추상화를 제공해서, 세부 스레드 관리 없이 병렬 작업을 쉽게 제출하고 결과를 받을 수 있게 해 줘요.
concurrent.interpreters는 서브인터프리터를 만들어 각각 독립된 전역 상태와 GIL을 가지게 함으로써, 인터프리터 수준에서 격리된 병렬 실행을 가능하게 해요.
둘 다 성격이 달라서, 작업을 고수준으로 병렬화할지 인터프리터 단위로 격리할지에 따라 선택이 달라져요.
concurrent 패키지는 파이썬에서 병렬 컴퓨팅을 시작할 때 가장 먼저 살펴볼 만한 표준 장소예요.
이 목차 페이지는 concurrent 패키지가 담고 있는 두 모듈을 안내하는 역할을 해요.
실제 사용은 각 모듈의 문서를 참고하세요.