CodeBlanks Logo Icon CodeBlanks

asyncio.run

asyncio.run ile event loop'u öğrenirsin.

asyncio.run

asyncio.run, bir coroutine'i en üst düzeyden çalıştırır. Yeni bir olay döngüsü açar, coroutine'i bekler ve döngüyü kapatır.

import asyncio

async def main():
    return 42

asyncio.run(main())  # 42

asyncio.run bir programda bir kez çağrılır; genellikle main() coroutine'ini çalıştırmak için kullanılır. Aynı döngü içinde başka coroutine'ler await ile çalıştırılır.

Python 3.7+'da bu işlev standart hâle geldi; eski loop.run_until_complete kalıbı yerine tercih edilir.

Olay döngüsü yaşam döngüsü

asyncio.run arka planda bir olay döngüsü oluşturur. Bu döngü, bekleyen coroutine'leri sırayla yürütür; bir coroutine await noktasına gelince diğerlerine geçer.

Program sonunda döngü kapatılır; açık kalan kaynaklar temizlenir. asyncio.run'ı birden çok kez çağırmak pratik değildir; tek bir main coroutine içinde işleri örgütlemek daha iyidir.

İç içe asyncio.run çağrısı yapılamaz; zaten çalışan bir döngü içinde tekrar açmaya çalışırsan hata alırsın.

Uygulama asyncio.run ile main çalıştır

import asyncio ile başla. async def main() fonksiyonu return 42 yapsın. print(asyncio.run(main())) çağrısını ekle.

Başlangıç kodu

main.py
# asyncio modülünü içe aktar
# main adında bir coroutine tanımla; 42 döndürsün
# main çağrısının sonucunu asyncio.run ile yazdır

Örnek çözüm

main.py
import asyncio

async def main():
    return 42

print(asyncio.run(main()))

Beklenen çıktı

42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 asyncio.run çağrısı

Soru
import asyncio

async def main():
    return 42

print(____(main()))
Cevap
import asyncio

async def main():
    return 42

print(asyncio.run(main()))

Açıklama: asyncio.run(main()) main coroutine'ini en üstten çalıştırır.

2 asyncio.run parçalarını eşleştir

Kavram Anlamı
asyncio.run(main()) En üst çağrı
main() Coroutine nesnesi
event loop Yürüten döngü
await Bekleme noktası

3 asyncio.run bir programda kaç kez çağrılır?

  • Genelde bir kez, en üstte Doğru cevap
  • Her coroutine için bir kez
  • Sınırsız, iç içe
  • Hiç, yalnızca await kullanılır

Açıklama: asyncio.run genellikle programın en üstünde main() için bir kez çağrılır.

İleri seviye bölümündeki tüm dersler