EMZETT.
Giriş yap

Coroutine’ler (eşyordamlar)

Kısaca: Coroutine’ler, ortada durdurulabilen ve daha sonra aynı yerden sürdürülebilen işlevlerdir.

Biraz daha ayrıntılı: İş parçacıklarından farklı olarak geçişi işletim sistemi değil, kod isteyerek denetimi bırakarak yapar (işbirlikçi çoklu görev). Bu yüzden çok hafiftirler: bir iş parçacığında on binlercesi çalışır.

Ayrıntılı

  • Anahtar sözcükler: yield (Python üreteçleri), await (async/await), suspend (Kotlin), goroutine’ler (Go, çalışma zamanı tarafından zamanlanır).
  • Güç: Boşta duran iş parçacıkları birikmeden ağ veya veritabanı üzerinde çok bekleme.
  • Zayıflık: Beklemek yerine hesaplayan bir coroutine, aynı iş parçacığındaki tüm diğerlerini engeller. CPU yoğun iş süreçlere veya iş parçacıklarına aittir.
  • Akış: Bir olay döngüsü (event loop) coroutine’leri başlatır, durumlarını hatırlar ve sonuçları hazır olunca sürdürür.
  • Kaputun altında: Derleyici bunları genellikle bir durum makinesine dönüştürür.

Ayrıca bak: async/await