Sobes.tech
Junior — Middle

Тавре фарқият байни консепсияҳои барномасозии асинхронӣ ва иҷрои параллелии вазифаҳо чист?

sobes.tech AI

Ҷавоб аз AI

Асинхронӣ барномасозӣ ва параллел иҷро кардан гуногун консептҳо ҳастанд, ҳарчанд аксар вақт бо ҳам истифода мешаванд.

  • Асинхронӣ барномасозӣ — ин роҳест барои ташкил кардани код, ки дар он амалҳое, ки вақт мегиранд (масалан, воридот/баромад), иҷрои барномаро монеъ намекунанд. Ба ҷои интизор шудан барои натиҷа, барнома идома медиҳад, ва натиҷа баъдан, вақте ки омода мешавад, коркард мешавад. Ин кӯмак мекунад, ки захираҳоро самаранок истифода бурдан, махсусан дар муҳитҳои яксӯроҳ.

  • Иҷрои параллел — ин иҷрои ҳамзамон чанд вазифа ё сӯроҳҳо, одатан дар процессори бисёрҷониба. Воқеан вазифаҳо ҳамзамон иҷро мешаванд, ки суръати коркардро меафзояд.

Масалан:

Дар Python бо asyncio (асинхрон):

import asyncio

async def вазифа():
    await asyncio.sleep(1)
    print("Вазифа анҷом ёфт")

async def асосӣ():
    await asyncio.gather(вазифа(), вазифа())

asyncio.run(асосӣ())

Ин ҷо вазифаҳо дар ядроҳои гуногун ҳамзамон иҷро намешаванд, аммо барнома дар вақти интизорӣ монеъ намешавад.

Барои параллелизм, метавон истифода бурд multiprocessing ё multithreading, то вазифаҳо ҳамзамон иҷро шаванд.