Назад к вопросам
Фабрика Решения
Junior — Middle
79
Какими способами в Python осуществляется параллельная обработка задач с использованием потоков?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Python параллельная обработка с использованием потоков обычно реализуется через модуль threading и concurrent.futures.ThreadPoolExecutor.
threadingпозволяет создавать и управлять потоками вручную, но требует заботы о синхронизации и управлении состоянием.concurrent.futures.ThreadPoolExecutorпредоставляет более удобный интерфейс для запуска задач в пуле потоков, упрощая параллелизм.
Важно помнить, что из-за GIL (Global Interpreter Lock) в CPython потоки эффективны для задач, связанных с вводом-выводом (I/O), но не для CPU-интенсивных задач.
Пример с ThreadPoolExecutor:
from concurrent.futures import ThreadPoolExecutor
import time
def task(n):
print(f"Задача {n} начала работу")
time.sleep(1)
print(f"Задача {n} завершена")
with ThreadPoolExecutor(max_workers=3) as executor:
for i in range(5):
executor.submit(task, i)
Этот код запускает 5 задач параллельно с максимум 3 потоками.