Mükemmel soru CS 102 kursumuzu, çift uçlu kuyruk için tek bir başvuruda bulunduğunu hatırlayamıyorum.
Bu güne kadar bildiğim tek uygulama Vikipedi makalesinde belirtilen iş çalma zamanlayıcısı .
Esasen aşağıdaki gibi çalışır:
Normal, tek iş parçacıklı bir yordamsal modelde, her işlev çağrısı, çağrı yığını adı verilen bir etkinleştirme kaydını zorlar . Bir etkinleştirme kaydı, bu aramanın yerel değişkenlerini ve parametrelerini içerir. Yönteme yapılan çağrı tamamlandığında (“geri döner”), son etkinleştirme kaydı çağrı yığından çıkarılır.
Bu özellikle önemlidir, çünkü özyinelemenin uygulanma şekli: özyinelemenin yapısı çağrı yığınının mevcut durumunda temsil edilir.
Özyinelemeli bir algoritmayı paralelleştirirken, çağrı yığınını bir çağrı kuyruğu ile değiştirerek bu özellikten faydalanabiliriz. Hesaplamadaki her iş parçacığı kendi çağrı sırasını alır ve sıralı bir uygulamadaki gibi etkinleştirme kayıtlarını iter ve çıkarır.
Ancak bir iş parçacığı işini bitirdiğinde (= çağrı sırası boş), “yanlış” uçtan kaldırarak bu iş parçasının çağrı kuyruğundan bir aktivasyon kaydını kaldırarak başka bir iş parçacığından iş çalıyor .
Temel olarak, çağrı kuyruğu şimdi iki iş parçacığına hizmet eden iki çağrı yığını gibi davranır.