Back to questions
СБЕР Роботы
Junior — Middle
50
Какие способы реализации параллельного выполнения задач используются в Python?
Companies where asked
Answer from AI
sobes.tech AI
В Python для параллельного выполнения задач используются несколько подходов:
-
Многопоточность (threading) — позволяет запускать несколько потоков в одном процессе. Полезно для задач с большим количеством операций ввода-вывода, но из-за GIL (Global Interpreter Lock) неэффективно для CPU-интенсивных задач.
-
Многопроцессность (multiprocessing) — создает несколько процессов, каждый со своей памятью, обходя ограничение GIL. Подходит для CPU-интенсивных задач.
-
Асинхронное программирование (asyncio) — позволяет писать код, который не блокируется при ожидании операций ввода-вывода, используя цикл событий и корутины.
Пример с multiprocessing:
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(4) as p:
print(p.map(f, [1, 2, 3, 4]))
Пример с asyncio:
import asyncio
async def say_hello():
await asyncio.sleep(1)
print('Hello')
async def main():
await asyncio.gather(say_hello(), say_hello())
asyncio.run(main())