Konu havuzu - Thread pool

Bekleyen görevleri (mavi) ve tamamlanmış görevleri (sarı) içeren örnek bir iş parçacığı havuzu (yeşil kutular)

Gelen bilgisayar programlama , bir iş parçacığı havuzu bir olan yazılım tasarım deseni ulaşmak için eşzamanlılık bir bilgisayar programında yürütme. Genellikle de denilen çoğaltılmış işçileri veya işçi-mürettebat modeli , bir iş parçacığı havuzu birden korur konuları bekleyen görevler için tahsis edilecek eşzamanlı denetleme programı tarafından yürütülmesi. Model, bir iş parçacığı havuzunu koruyarak performansı artırır ve kısa ömürlü görevler için iş parçacıklarının sık sık oluşturulması ve yok edilmesi nedeniyle yürütmedeki gecikmeyi önler. Kullanılabilir iş parçacıklarının sayısı, yürütme tamamlandıktan sonra paralel bir görev kuyruğu gibi program için mevcut olan bilgi işlem kaynaklarına göre ayarlanır.

Verim

Bir iş parçacığı havuzunun boyutu, görevleri yürütmek için yedekte tutulan iş parçacıklarının sayısıdır. Genellikle, program performansını optimize etmek için ayarlanmış, uygulamanın ayarlanabilir bir parametresidir. Optimum iş parçacığı havuzu boyutuna karar vermek, performansı optimize etmek için çok önemlidir.

Bir iş parçacığı havuzunun her görev için yeni bir iş parçacığı oluşturmaya göre bir avantajı, iş parçacığı oluşturma ve yok etme ek yükünün havuzun ilk oluşturulmasıyla sınırlı olmasıdır, bu da daha iyi performans ve daha iyi sistem kararlılığı ile sonuçlanabilir . Bir iş parçacığı ve onunla ilişkili kaynakları oluşturmak ve yok etmek, zaman açısından pahalı bir süreç olabilir. Bununla birlikte, yedekte bulunan aşırı sayıda iş parçacığı, belleği boşa harcar ve çalıştırılabilir iş parçacıkları arasında bağlam değiştirme, performans cezalarına neden olur. Başka bir ağ ana bilgisayarına, düşmesi ve yeniden kurulması birçok CPU döngüsü gerektirebilecek bir soket bağlantısı, bunu birden fazla ağ işlemi boyunca yaşayan bir iş parçacığı ile ilişkilendirerek daha verimli bir şekilde sağlanabilir.

Bir iş parçacığı havuzu kullanmak, iş parçacığı başlatma süresini bir kenara koymak bile yararlı olabilir. İş parçacığı havuzlarının uygulamaları, iş parçacığını manuel olarak yönetirken kolayca yapılabileceğinden daha yüksek bir düzeyde işi sıraya koymayı, eşzamanlılığı kontrol etmeyi ve iş parçacıklarını eşitlemeyi önemsiz hale getirir. Bu durumlarda, kullanımın performans faydaları ikincil olabilir.

Tipik olarak, bir iş parçacığı havuzu tek bir bilgisayarda yürütülür. Bununla birlikte, iş parçacığı havuzları kavramsal olarak, bir iş parçacığı havuzunun kendisi olabilecek bir ana işlemin, genel verimi artırmak için görevleri farklı bilgisayarlardaki çalışan işlemlere dağıttığı sunucu çiftlikleriyle ilgilidir . Utanç verici derecede paralel problemler bu yaklaşıma oldukça uygundur.

İş parçacığı sayısı, bekleyen görevlerin sayısına bağlı olarak bir uygulamanın ömrü boyunca dinamik olarak ayarlanabilir. Örneğin, bir web sunucusu çok sayıda web sayfası isteği gelirse dizi ekleyebilir ve bu istekler azaldığında dizileri kaldırabilir. Daha büyük bir iş parçacığı havuzuna sahip olmanın maliyeti, artan kaynak kullanımıdır. İş parçacıklarının ne zaman oluşturulacağını veya yok edileceğini belirlemek için kullanılan algoritma genel performansı etkiler:

  • Çok fazla iş parçacığı oluşturmak, kaynakları boşa harcar ve kullanılmayan iş parçacıkları oluşturmak için zaman harcar.
  • Çok fazla iş parçacığını yok etmek, daha sonra onları yeniden oluştururken daha fazla zaman gerektirir.
  • Konuları çok yavaş oluşturmak, düşük istemci performansına neden olabilir (uzun bekleme süreleri).
  • İş parçacıklarının çok yavaş yok edilmesi, diğer kaynak süreçlerini aç bırakabilir.

Ayrıca bakınız

Referanslar

Dış bağlantılar