Junior — Middle
116
Python-da tapşırıqların çoxlu iş parçacığı istifadə edilərək paralel işlənməsi necə həyata keçirilir?
Şirkətlər soruşuldu
AI-dan cavab
sobes.tech Süni İntellekt
В 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 потоками.