Можешь перечислить виды параллельного и конкурентного программирования, реализуемые в Python?
Ответ от нейросети
sobes.tech AI
В Python реализованы несколько видов параллельного и конкурентного программирования:
-
Многопоточность (threading) — позволяет запускать несколько потоков внутри одного процесса. Из-за GIL (Global Interpreter Lock) в CPython потоки не могут одновременно выполнять байт-код, но подходят для задач с вводом-выводом.
-
Многопроцессность (multiprocessing) — создает несколько процессов, каждый со своей памятью, что позволяет обойти ограничение GIL и эффективно использовать несколько ядер CPU.
-
Асинхронное программирование (asyncio) — основано на событийном цикле и корутинах, позволяет писать конкурентный код без потоков и процессов, эффективно для IO-bound задач.
-
Concurrent Futures — высокоуровневый интерфейс для запуска задач в потоках или процессах через ThreadPoolExecutor и ProcessPoolExecutor.
Пример использования 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():
print('Hello')
await asyncio.sleep(1)
print('World')
asyncio.run(say_hello())