Aracılığıyla paylaş


Birden Çok Görev Konusunda Dikkat Edilmesi Gerekenler

Önerilen kılavuz, mümkün olduğunca az iş parçacığı kullanmak ve böylece sistem kaynaklarının kullanımını en aza indirmektir. Bu, performansı artırır. Birden çok görev, uygulamanızı tasarlarken dikkate alınması gereken kaynak gereksinimlerine ve olası çakışmalara sahiptir. Kaynak gereksinimleri şunlardır:

  • Sistem hem işlemler hem de iş parçacıkları için gereken bağlam bilgileri için bellek kullanır. Bu nedenle, oluşturulabilecek işlem ve iş parçacıklarının sayısı kullanılabilir bellekle sınırlıdır.
  • Çok sayıda iş parçacığının izlenmesi, işlemci süresini önemli ölçüde tüketir. Çok fazla iş parçacığı varsa, bunların çoğu önemli bir ilerleme kaydedemez. Geçerli iş parçacıklarının çoğu bir işlemde yoğunlaşmışsa, diğer işlemlerdeki iş parçacıkları daha az sıklıkta zamanlanır.

Kaynaklara paylaşılan erişim sağlamak çakışmalar oluşturabilir. Bunlardan kaçınmak için paylaşılan kaynaklara erişimi eşitlemeniz gerekir. Bu durum sistem kaynakları (iletişim bağlantı noktaları gibi), birden çok işlem tarafından paylaşılan kaynaklar (dosya tanıtıcıları gibi) veya birden çok iş parçacığı tarafından erişilen tek bir işlemin kaynakları (genel değişkenler gibi) için geçerlidir. Erişimin düzgün eşitlenememesi (aynı veya farklı işlemlerde) kilitlenme ve yarış koşulları gibi sorunlara yol açabilir. Birden çok iş parçacığı arasında kaynak paylaşımını koordine etmek için kullanabileceğiniz eşitleme nesneleri ve işlevleri. Senkronizasyon hakkında daha fazla bilgi için bakınız Birden Çok İş Parçacığının Yürütülmesini Senkronize Etme. İş parçacığı sayısını azaltmak, kaynakları senkronize etmeyi daha kolay ve etkili hale getirir.

Çok iş parçacıklı bir uygulama için iyi bir tasarım, işlem hattı sunucusudur. Bu tasarımda, işlemci başına bir iş parçacığı oluşturur ve uygulamanın bağlam bilgilerini koruduğu istek kuyrukları oluşturursunuz. Bir iş parçacığı, bir sonraki kuyruktaki istekleri işlemeye başlamadan önce, bir kuyruktaki tüm istekleri işler.