Sobes.tech
Middle

Asinxron proqramlaşdırma (async) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Asinxron proqramlaşdırma — bu, proqramın əsas icra axınına mane olmadan eyni zamanda çoxsaylı tapşırıqları yerinə yetirməyə imkan verən paradigmadır. Bu, gözləmə vaxtlarından səmərəli istifadə etməklə (məsələn, giriş/çıxış əməliyyatlarında) həyata keçirilir.

Əsas anlayışlar:

  • Korutinalar: Xüsusi funksiyalar olub, onların icrasını dayandıra və sonra davam etdirə bilərlər. async def ilə elan edilir.
  • Hadisələr döngüsü: Korutinaların icrasını idarə edən əsas orkestrator, hadisələri izləyir və biri gözləyirsə, tapşırıqlar arasında keçid edir.
  • await: Gözlənilən əməliyyat tamamlanana qədər korutinanın icrasını dayandırmaq üçün açar söz (məsələn, başqa bir korutinanı çağırmaq və ya I/O nəticəsini gözləmək).

Nümunə:

// Asinxron funksiyanın nümunəsi
import asyncio

async def fetch_url(url):
    print(f"Yükləməyə başlayır: {url}")
    await asyncio.sleep(2) // Uzun əməliyyatın (məsələn, şəbəkə sorğusu) simulasyonu
    print(f"Yükləmə tamamlandı: {url}")

async def main():
    # Korutinalardan tapşırıqlar yaradılır
    task1 = asyncio.create_task(fetch_url("http://example.com/page1"))
    task2 = asyncio.create_task(fetch_url("http://example.com/page2"))

    # Hər iki tapşırığın tamamlanmasını gözləyirik
    await task1
    await task2

// Hadisələr döngüsünü işə salırıq
if __name__ == "__main__":
    asyncio.run(main())

Üstünlüklər:

  • Performansın artırılması: Xüsusilə, I/O ilə bağlı tapşırıqlar üçün (şəbəkə sorğuları, fayllarla işləmək).
  • Resursların daha yaxşı istifadəsi: Bir neçə iş parçacığı və ya proses yaradılmır, bu da əlavə xərcləri azaldır.
  • Cavabvermə qabiliyyətinin saxlanması: Əsas axın bloklanmır, bu da interaktiv tətbiqlər və ya serverlər üçün vacibdir.

Asinxron proqramlaşdırma aşağıdakı tapşırıqlar üçün uyğundur:

  • Veb serverlər (məsələn, asyncio və ya FastAPI istifadə edilərək).
  • Veb saytların analizi.
  • Verilənlər bazası ilə işləmək.
  • Xarici resursların gözlənilməsi ilə bağlı hər hansı tapşırıq.