CodeBlanks Logo Icon CodeBlanks

asyncio vs threading

asyncio ile threading farkını öğrenirsin.

asyncio vs threading

asyncio, tek bir parçacıkta eşzamanlı (concurrent) I/O işleri çalıştıran bir kütüphanedir. threading ise işletim sistemi parçacıkları kullanır.

asyncio'da async def ile eşzamanlı fonksiyon (coroutine) tanımlar, await ile I/O beklersin. Bu sırada olay döngüsü başka bir coroutine'e geçer. threading'de ise her parçacık kendi yürütme akışına sahiptir. asyncio, I/O yoğun sunucu uygulamalarında daha verimlidir; ama CPU yoğun işler için uygun değildir.

asyncio.run ile başlatma

Bir async def fonksiyonunu doğrudan çağıramazsın; bir olay döngüsü gerekir. asyncio.run(greet()) olay döngüsünü başlatır ve coroutine'i çalıştırır.

Bu, asyncio programlarının standart giriş noktasıdır. asyncio.run döngüyü oluşturur, coroutine'i çalıştırır, tamamlandığında döngüyü kapatır. Program boyunca yalnızca bir asyncio.run çağrısı yapılır. İçerde await ile başka coroutine'leri bekleyebilirsin.

Uygulama asyncio ile greet çağır

import asyncio ile modülü içe aktar. async def greet(): tanımla; print("async") yapsın. asyncio.run(greet()) ile çalıştır.

Başlangıç kodu

main.py
# async greet fonksiyonu yaz
# asyncio.run ile çalıştır

Örnek çözüm

main.py
import asyncio

async def greet():
    print("async")

asyncio.run(greet())

Beklenen çıktı

async

Soru ve cevaplar

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

1 async tanımını tamamla

Soru
import asyncio

____ def greet():
    print("async")
Cevap
import asyncio

async def greet():
    print("async")

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

2 asyncio vs threading kavramlarını eşleştir

Kavram Anlamı
async def Coroutine
await I/O bekler
asyncio.run Olay döngüsü
threading Parçacık

3 asyncio hangi işlerde daha verimlidir?

  • CPU yoğun hesaplamada
  • I/O yoğun sunucu uygulamalarında Doğru cevap
  • Tek parçacıklı basit programda
  • Dosya sıkıştırmada

Açıklama: asyncio, I/O yoğun sunucu uygulamalarında threading'den daha verimlidir.

Uzman bölümündeki tüm dersler