Middle
22
Как параллелить выполнение функции в Python?
Companies where asked
Answer from AI
sobes.tech AI
В Python для параллельного выполнения функций можно использовать несколько подходов:
-
Модуль
threading— для многопоточности, подходит для задач с большим количеством операций ввода-вывода, так как из-за GIL потоки не дают прироста в вычислительных задачах. -
Модуль
multiprocessing— создает отдельные процессы, обходя GIL, подходит для CPU-интенсивных задач. -
Асинхронное программирование (
asyncio) — для конкурентного выполнения задач, особенно полезно при работе с сетью и вводом-выводом.
Пример с использованием multiprocessing для параллельного выполнения функции:
from multiprocessing import Pool
def f(x):
return x * x
if __name__ == '__main__':
with Pool(4) as p:
results = p.map(f, [1, 2, 3, 4, 5])
print(results) # [1, 4, 9, 16, 25]
Этот код запускает функцию f параллельно в 4 процессах.