동시 실행¶
이 장에서 설명하는 모듈은 코드의 동시 실행을 지원합니다. 적절한 도구 선택은 실행할 작업(CPU 병목 대 IO 병목)과 선호하는 개발 스타일(이벤트 구동 협력적 다중작업 대 선점적 다중작업)에 따라 달라집니다. 다음은 개요입니다:
threading
— Thread-based parallelismactive_count()
current_thread()
excepthook()
__excepthook__
get_ident()
get_native_id()
enumerate()
main_thread()
settrace()
settrace_all_threads()
gettrace()
setprofile()
setprofile_all_threads()
getprofile()
stack_size()
TIMEOUT_MAX
- 스레드 로컬 데이터
- Thread 객체
- Lock 객체
- RLock 객체
- Condition 객체
- Semaphore 객체
- Event 객체
- Timer 객체
- Barrier 객체
with
문으로 록, 조건 및 세마포어 사용하기
multiprocessing
— Process-based parallelismmultiprocessing.shared_memory
— Shared memory for direct access across processes- The
concurrent
package concurrent.futures
— Launching parallel taskssubprocess
— Subprocess managementsubprocess
모듈 사용하기- 보안 고려 사항
- Popen 객체
- 윈도우 Popen 도우미
STARTUPINFO
- 윈도우 상수
STD_INPUT_HANDLE
STD_OUTPUT_HANDLE
STD_ERROR_HANDLE
SW_HIDE
STARTF_USESTDHANDLES
STARTF_USESHOWWINDOW
STARTF_FORCEONFEEDBACK
STARTF_FORCEOFFFEEDBACK
CREATE_NEW_CONSOLE
CREATE_NEW_PROCESS_GROUP
ABOVE_NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
REALTIME_PRIORITY_CLASS
CREATE_NO_WINDOW
DETACHED_PROCESS
CREATE_DEFAULT_ERROR_MODE
CREATE_BREAKAWAY_FROM_JOB
- 오래된 고수준 API
- 이전 함수를
subprocess
모듈로 교체하기 - 레거시 셸 호출 함수
- 노트
sched
— Event schedulerqueue
— A synchronized queue classcontextvars
— Context Variables
다음은 위 서비스 중 일부에 대한 지원 모듈입니다: