Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çoklu iş parçacığı kullanımı, uygulamanızın yanıt hızını artırmanıza ve uygulamanız çok işlemcili veya çok çekirdekli bir sistemde çalışıyorsa aktarım hızını artırmanıza olanak tanır.
İşlemler ve iş parçacıkları
İşlem, yürütülen bir programdır. İşletim sistemi yürütülmekte olan uygulamaları ayırmak için işlemleri kullanır. İş parçacığı, işletim sisteminin işlemci süresini ayırdığı temel birimdir. Her iş parçacığının bir zamanlama önceliği vardır ve iş parçacığının yürütmesi duraklatıldığında sistemin iş parçacığı bağlamını kaydetmek için kullandığı bir dizi yapıyı korur. İş parçacığı bağlamı, iş parçacığının CPU yazmaçları ve yığını da dahil olmak üzere yürütmeyi sorunsuz bir şekilde sürdürmek için ihtiyaç duyduğu tüm bilgileri içerir. Bir işlem bağlamında birden çok iş parçacığı çalıştırılabilir. Bir işlemin tüm iş parçacıkları sanal adres alanını paylaşır. Bir iş parçacığı, program kodunun herhangi bir bölümünü yürütebilir ve şu anda başka bir iş parçacığı tarafından yürütülen parçalar da dahil olabilir.
Uyarı
.NET Framework, uygulama etki alanlarının kullanımıyla bir işlem içindeki uygulamaları yalıtmak için bir yol sağlar. (Uygulama etki alanları .NET Core'da kullanılamaz.) Daha fazla bilgi için, Uygulama etki alanları makalesinin Uygulama etki alanları ve iş parçacıkları bölümüne bakın.
Varsayılan olarak, bir .NET programı genellikle birincil iş parçacığı olarak adlandırılan tek bir iş parçacığıyla başlatılır. Ancak, kodu birincil iş parçacığıyla paralel veya eşzamanlı olarak yürütmek için ek iş parçacıkları oluşturabilir. Bu iş parçacıkları genellikle çalışan iş parçacıkları olarak adlandırılır.
Birden çok iş parçacığı ne zaman kullanılır?
Uygulamanızın yanıt hızını artırmak ve uygulamanın aktarım hızını artırmak için çok işlemcili veya çok çekirdekli bir sistemden yararlanmak için birden çok iş parçacığı kullanırsınız.
Birincil iş parçacığının kullanıcı arabirimi öğelerinden sorumlu olduğu ve kullanıcı eylemlerine yanıt verdiği bir masaüstü uygulaması düşünün. Zaman alan işlemlerin birincil iş parçacığını işgal ederek kullanıcı arayüzünün yanıt vermemesini önlemek için çalışan iş parçacıklarını kullanın. Gelen iletilere veya olaylara daha hızlı yanıt vermek için ağ veya cihaz iletişimi için ayrılmış bir iş parçacığı da kullanabilirsiniz.
Programınız paralel olarak gerçekleştirilebilecek işlemler gerçekleştiriyorsa, bu işlemleri ayrı iş parçacıklarında gerçekleştirip programı çok işlemcili veya çok çekirdekli bir sistemde çalıştırarak toplam yürütme süresi azaltılabilir. Böyle bir sistemde çoklu iş parçacığı kullanımı, artan yanıt hızıyla birlikte aktarım hızını da artırabilir.
.NET'te çoklu iş parçacığı kullanımı
.NET Framework 4'den başlayarak, çok iş parçacığı kullanmanın önerilen yolu Görev Paralel Kitaplığı (TPL) ve Paralel LINQ (PLINQ) kullanmaktır. Daha fazla bilgi için bkz. Paralel programlama.
Hem TPL hem de PLINQ, ThreadPool iş parçacıklarının üzerinde çalışır. System.Threading.ThreadPool sınıfı, bir .NET uygulamasına çalışan iş parçacıkları havuzu sağlar. İş parçacığı havuzu iş parçacıklarını da kullanabilirsiniz. Daha fazla bilgi için Yönetilen iş parçacığı havuzu bölümüne bakın.
Sonunda, yönetilen bir iş parçacığını temsil eden System.Threading.Thread sınıfını kullanabilirsiniz. Daha fazla bilgi için bkz. İş parçacıkları ve zamanlama.
Birden çok iş parçacığı, paylaşılan bir kaynağa erişmek zorunda kalabilir. Kaynağı bozulmamış durumda tutmak ve yarış koşullarından kaçınmak için iş parçacıklarının erişimini buna senkronize etmeniz gerekir. Birden çok iş parçacığının etkileşimini koordine etmek de isteyebilirsiniz. .NET, paylaşılan bir kaynağa erişimi eşitlemek veya iş parçacığı etkileşimini koordine etmek için kullanabileceğiniz bir dizi tür sağlar. Daha fazla bilgi için bkz. Eşitleme temel bilgilerine genel bakış.
İş parçacıklarında özel durumları işleyebilir. İş parçacıklarındaki işlenmeyen istisnalar genellikle işlemi sonlandırır. Daha fazla bilgi için bkz. Yönetilen iş parçacıklarında özel durumlar.
Ayrıca bakınız
- İş parçacığı nesneleri ve özellikleri
- Yönetilen iş parçacığı oluşturma en iyi yöntemleri
- İşlemler ve İş Parçacıkları hakkında
- .NET'te Paralel İşleme
- .NET'te asenkron programlama desenleri