Coroutine Nedir?
Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 48 / 54.
Bir video oyunu oynadığınızı düşünün. İstediğiniz an oyunu duraklatabilir, başka bir şey yapabilir ve ardından tam kaldığınız yerden devam etmek için geri dönebilirsiniz. Lua'daki coroutine'ler benzer bir şekilde çalışır.
Bir coroutine, yürütmenin ortasında kendini duraklatabilen ve daha sonra tam o noktadan devam edebilen özel bir fonksiyon gibidir. Durmadan baştan sona çalışan normal fonksiyonların aksine, coroutine'ler ne zaman duraklayacakları ve ne zaman devam edecekleri konusunda size kontrol sağlar.
Bu yetenek, işbirlikçi çoklu görev (cooperative multitasking) adı verilen bir şeyi mümkün kılar. Birden fazla görevi tam olarak aynı anda çalıştırmak yerine, coroutine'ler farklı görevler arasında gönüllü olarak geçiş yapmanıza olanak tanır.
Bir eşyordam bir süre çalışır, kendini duraklatır, bir diğeri devralır ve bu böyle devam eder. Her eşyordam, kontrolü ne zaman geri vereceğine karar vererek iş birliği yapar.
Coroutineler, uzun süren işlemleri bölmeniz, sıra tabanlı sistemleri yönetmeniz veya çağrılar arasında durumlarını hatırlaması gereken diziler oluşturmanız gerektiğinde kullanışlıdır. Gelecek derslerde, Lua'da coroutineleri nasıl oluşturacağınızı, duraklatacağınızı ve devam ettireceğinizi öğreneceksiniz.
Kopya kağıdı
Bir coroutine, durmadan baştan sona çalışan normal fonksiyonların aksine, yürütme sırasında kendisini duraklatabilen ve daha sonra tam olarak aynı noktadan devam edebilen özel bir fonksiyondur.
Coroutine'ler, görevlerin eşzamanlı olarak çalışmak yerine kontrolü kendi istekleriyle birbirleri arasında devrettiği işbirlikçi çoklu görev (cooperative multitasking) imkanı sağlar. Bir coroutine çalışır, kendisini duraklatır, diğeri kontrolü ele alır ve döngü bu şekilde devam eder.
Coroutine'ler; uzun süren işlemleri parçalara ayırmak, sıra tabanlı sistemleri yönetmek veya çağrılar arasında durumlarını hatırlaması gereken diziler oluşturmak için kullanışlıdır.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor Tablosu3İleri Düzey Fonksiyon Kavramları
Birden Fazla Değer DöndürmeVariadic Fonksiyonlar (...)Birinci Sınıf Değer Olarak FonksiyonlarAnonim FonksiyonlarClosure Nedir?Özet - Basit Event Handler9Yeni Başlayanlar İçin Coroutine'ler
Coroutine Nedir?coroutine create ve resumecoroutine.yield() ile Duraklatmaresume ve yieldCoroutine Durumunu Kontrol EtmeÖzet - Sayı ÜreticiÖzet - Vektör Matematiği