Паралельне виконання¶
Модулі, описані в цьому розділі, забезпечують підтримку одночасного виконання коду. Відповідний вибір інструменту залежатиме від завдання, яке потрібно виконати (прив’язка до процесора чи прив’язка до вводу-виводу) і бажаного стилю розробки (кооперативна багатозадачність, керована подіями, проти випереджальної багатозадачності). Ось огляд:
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
- Локальні дані потоку
- Об’єкти потоку
- Блокування об’єктів
- Об’єкти RLock
- Об’єкти стану
- Об’єкти семафора
- Об’єкти подій
- Об’єкти таймера
- Загороджувальні об’єкти
- Використання блокувань, умов і семафорів у операторі
with
multiprocessing
— Process-based parallelismmultiprocessing.shared_memory
— Shared memory for direct access across processes- The
concurrent
package concurrent.futures
— Launching parallel taskssubprocess
— Subprocess management- Використання модуля
subprocess
- Міркування безпеки
- Відкрити об’єкти
- Windows Open Helpers
STARTUPINFO
- Константи Windows
STD_INPUT_HANDLE
STD_OUTPUT_HANDLE
STD_ERROR_HANDLE
SW_HIDE
STARTF_USESTDHANDLES
STARTF_USESHOWWINDOW
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
Нижче наведено модулі підтримки для деяких із зазначених вище служб: