Sobes.tech
Junior — Middle

Можеш ли да набројиш врсте паралелног и конкурентног програмирања реализоване у Python-у?

sobes.tech АИ

Одговор од АИ

У Python-у су реализовани различити типови паралелног и конкурентног програмирања:

  1. Многопоточност (threading) — омогућава покретање више нитова унутар једног процеса. Због GIL (Global Interpreter Lock) у CPython, нитови не могу истовремено извршавати байткод, али су погодни за задатке са улазом/излазом.

  2. Многопроцесност (multiprocessing) — креира више процеса, сваки са својом меморијом, што омогућава заобилажење GIL ограничења и ефикасно коришћење више језгара CPU.

  3. Асимптонско програмирање (asyncio) — засновано на догађајној петљи и корутинама, омогућава писање конкуретног кода без нитова и процеса, ефикасно за I/O-базиране задатке.

  4. 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())
Можеш ли да набројиш врсте паралелног и конкурентног… - sobes.tech