Menu
Coddy logo textTech

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.

quiz iconKendini test et

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