Ответ
В Python для работы с многопоточностью чаще всего используют:
threading
— стандартная библиотека для создания и управления потоками. Из-за GIL подходит для I/O-bound задач, но не для CPU-bound.
import threading
def task():
print("Thread running")
thread = threading.Thread(target=task)
thread.start()
thread.join()
concurrent.futures
— высокоуровневый интерфейс для пула потоков (ThreadPoolExecutor
) или процессов (ProcessPoolExecutor
).
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor() as executor:
executor.submit(lambda: print("Task executed"))
-
asyncio
— для асинхронного I/O (не совсем многопоточность, но решает схожие задачи). -
multiprocessing
— для CPU-bound задач (использует процессы, обходит GIL). -
queue
— для безопасного обмена данными между потоками.
Для сложных сценариев можно использовать gevent
или celery
(распределённые задачи).