Sobes.tech
Back to questions
Junior — Middle
50

Какие способы реализации параллельного выполнения задач используются в Python?

Companies where asked
СБЕР РоботыСБЕР Роботы

Answer from AI

sobes.tech AI

В Python для параллельного выполнения задач используются несколько подходов:

  1. Многопоточность (threading) — позволяет запускать несколько потоков в одном процессе. Полезно для задач с большим количеством операций ввода-вывода, но из-за GIL (Global Interpreter Lock) неэффективно для CPU-интенсивных задач.

  2. Многопроцессность (multiprocessing) — создает несколько процессов, каждый со своей памятью, обходя ограничение GIL. Подходит для CPU-интенсивных задач.

  3. Асинхронное программирование (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())