Назад к вопросам
Junior — Middle
59
Какие модули Python предоставляют средства для реализации параллельного выполнения задач?
Компании, где спрашивали
Стилсофт
Ответ от нейросети
sobes.tech AI
В Python для реализации параллельного выполнения задач используются несколько основных модулей:
threading— позволяет создавать и управлять потоками (threads). Подходит для задач, где важна параллельность ввода-вывода, но из-за GIL не увеличивает производительность CPU-интенсивных задач.multiprocessing— создает отдельные процессы, обходя ограничения GIL, что позволяет эффективно распараллеливать CPU-интенсивные задачи.concurrent.futures— высокоуровневый интерфейс для работы с потоками (ThreadPoolExecutor) и процессами (ProcessPoolExecutor), упрощает управление пулом потоков или процессов.asyncio— для асинхронного программирования, позволяет выполнять задачи конкурентно без создания потоков или процессов, подходит для ввода-вывода.
Пример использования concurrent.futures с потоками:
import concurrent.futures
import time
def task(n):
time.sleep(n)
return f"Задача {n} завершена"
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
futures = [executor.submit(task, i) for i in range(3)]
for future in concurrent.futures.as_completed(futures):
print(future.result())