JET School

Asinxron Proqramlaşdırma nədir?

Asinxron Proqramlaşdırma – proqramın icrası zamanı gözləmə tələb edən əməliyyatları (I/O əməliyyatları, şəbəkə çağırışları, verilənlər bazası sorğuları və s.) bloklamadan yerinə yetirməyə imkan verən proqramlaşdırma modelidir. Bu model, Python-da async və await açar sözləri ilə dəstəklənir və ən çox FastAPI, aiohttp, və Quart kimi müasir web framework-lərdə istifadə olunur.

Əsas Məqsəd Nədir?

Ənənəvi (sinxron) proqramlaşdırmada bir funksiyanın nəticəsi alınana qədər proqramın digər hissəsi gözləyir. Bu, xüsusilə çoxsaylı istifadəçi sorğularının eyni anda gəldiyi web serverlərdə ciddi performans problemlərinə səbəb ola bilər.

Asinxron proqramlaşdırma isə bu əməliyyatları paralel və bloklamadan icra etməyə imkan verir. Nəticədə bir proses cavab gözləyərkən digəri icra olunur, bu da serverin məhsuldarlığını və cavab sürətini xeyli artırır.

Misal: Sinxron və Asinxron fərqi

Sinxron versiya:


import time

def hello():

time.sleep(2)

print("Salam")


hello()

print("Davam edir")

Nəticə:


(2 saniyə gözləyir)

Salam

Davam edir


Asinxron versiya:

import asyncio

async def hello():

await asyncio.sleep(2)

print("Salam")


async def main():

await hello()

print("Davam edir")


asyncio.run(main())

Bu versiyada eyni anda çoxlu asinxron funksiyalar işlədilə bilər, məsələn, API sorğularını eyni vaxtda icra etmək kimi.

Asinxron Back-End-də Harada İşlənir?

  • REST və ya WebSocket API-lərdə eyni anda çoxlu istifadəçidən gələn sorğuların cavablandırılması
  • Verilənlər bazası əməliyyatlarında (məs. async SQL kitabxanaları: databases, aiomysql, asyncpg)
  • Fayl sistemi və şəbəkə əməliyyatları ilə asinxron əlaqə
  • Botlar və real-time tətbiqlər (xüsusilə oyun serverləri, çat sistemləri və dashboard-lar)

Üstünlükləri:

  • Bloklamayan I/O — daha sürətli cavab müddəti
  • Daha az resursla daha çox istifadəçiyə xidmət
  • Yüksək performans və miqyaslana bilən arxitektura
  • Əsl vaxtda sistemlər üçün idealdır

Çağırışlar:

  • Yazılması və başa düşülməsi daha çətindir
  • Kodun debugg olunması çətin ola bilər
  • Bütün kitabxanalar asinxron deyil, bəzi hallarda uyğun alternativlər tapmaq lazım gəlir

Ən məşhur Python asinxron framework və kitabxanalar:

  • FastAPI – Asinxron REST API-lər üçün müasir framework
  • aiohttp – HTTP server və client üçün asinxron kitabxana
  • asyncio – Python-un daxilindəki əsas asinxron modulu
  • Trio, Curio – daha təhlükəsiz və sadə async alətləri

Əlaqəli terminlər:

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!