CodeBlanks Logo Icon CodeBlanks

async/await

async ve await anahtar kelimelerini öğrenirsin.

async/await

async/await, eşzamanlı (concurrent) kodu okunaklı hâle getiren söz dizimidir. Bir fonksiyonu async def ile tanımlarsın; içerde await ile başka bir eşzamanlı işlemi beklersin.

async def greet(name):
    return "Merhaba, " + name

Bir async def fonksiyonu çağrılınca hemen sonuç vermez; bir coroutine nesnesi döndürür. Bu nesneyi çalıştırmak için bir olay döngüsü (event loop) gerekir; onu sonraki derste göreceğiz.

Bekleme yapılan yeri await ile işaretlersin; bu sırada olay döngüsü başka işleri yürütebilir.

await ile bekleme

Bir coroutine ya da bekleyen işlemi await ile beklersin. Bu, olay döngüsüne "bu noktada bekleyebilirim, başka iş yap" mesajı verir.

await yalnızca async def içinde geçerlidir; dışarıda yazarsan hata alırsın. await'in yanındaki ifade bir awaitable olmalıdır: coroutine, task ya da future.

async def fetch():
    await asyncio.sleep(1)
    return "ok"

Burada await, asyncio.sleep'i beklerken olay döngüsü başka işleri yürütebilir.

Uygulama async def ile greet yaz

async def greet(name) fonksiyonu "Merhaba, " + name döndürsün. Sonra asyncio.run(greet("Ayşe")) çağrısını print() ile yazdır. import asyncio ile başla.

Başlangıç kodu

main.py
# asyncio modülünü içe aktar
# greet adında bir coroutine tanımla; isim ile selam dizesi döndürsün
# greet("Ayşe") çağrısının sonucunu asyncio.run ile yazdır

Örnek çözüm

main.py
import asyncio

async def greet(name):
    return "Merhaba, " + name

print(asyncio.run(greet("Ayşe")))

Beklenen çıktı

Merhaba, Ayşe

Soru ve cevaplar

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

1 async def fonksiyonu doğrudan çağrılınca ne döner?

  • Hata fırlatır
  • Fonksiyonun sonucu
  • None
  • Bir coroutine nesnesi Doğru cevap

Açıklama: async def çağrısı hemen çalışmaz; bir coroutine nesnesi döndürür.

2 async def tamamla

Soru
____ def greet(name):
    return "Merhaba, " + name
Cevap
async def greet(name):
    return "Merhaba, " + name

Açıklama: async def ile bir coroutine fonksiyonu tanımlanır.

3 async/await kavramlarını eşleştir

Kavram Anlamı
async def Coroutine tanımı
await Bekleme noktası
coroutine Çalıştırılabilir nesne
event loop Yürüten mekanizma

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