Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 26065|Yanıt: 2

[Kaynak] .net/C# thread pool'un kullanımına kısa bir analiz ThreadPool

[Bağlantıyı kopyala]
Yayınlandı 21.06.2017 09:43:20 | | | |
İplik havuzu nedir? Neden ip havuzu kullanılıyor? İplik havuzları nasıl kullanılır?

1. İplik havuzu nedir?

        .NET Framework'un ThreadPool sınıfı, görevleri çalıştırmak, iş öğeleri göndermek, asenkron I/O'yu işlemek, diğer iş parçacıkları adına beklemek ve zamanlayıcıları işlemek için kullanılabilen bir iş noktası havuzu sağlar. Peki thread pool nedir? İş parçacığı havuzu aslında iş parçacığı nesnelerini depolayan bir "havuz"dur ve havuzdaki minimum/maksimum iş parçacığı sayısını belirlemek, çalıştırılacak yöntemleri sıraya almak gibi temel yöntemler sağlar. ThreadPool statik bir sınıftır, bu yüzden nesne oluşturmadan doğrudan kullanılabilir.

2. Neden ip havuzu kullanılır? Faydaları nelerdir?

        Microsoft'un resmi web sitesi şöyle diyor: Birçok uygulama, olayların gerçekleşmesini bekleyen uykuda olan çok sayıda iş parçacığı oluşturuyor. Ayrıca, değişen veya güncellenmiş eyalet bilgisi için ara ara uyanmak için uykuya dalabilecek birçok başlık da var. İş parçacığı havuzları, sistem tarafından yönetilen işçi iş parçacıkları havuzu aracılığıyla iş parçacıklarını daha verimli kullanmanızı sağlar.

        Basitçe söylemek gerekirse, her yeni iş parçacığı bellek alanı ve diğer kaynakları doldurmalı ve bu kadar çok yeni iş başlığı varken, çoğu ya uykuda ya da kaynakların serbest bırakılmasını bekliyor. Birçok iş parçacığı, veri yenilemek gibi periyodik olarak küçük işleri yapar ve çizmek için çok israfçıdır ve gerçek programlamada çok sayıda iş parçacığının ortaya çıkıp kısa sürede bitmesi nadirdir. Bu nedenle, thread havuzları kavramı önerildi. Uygulama iş parçacığı havuzuna başka bir talep yaparsa, beklemedeki iş parçacığı aktive olur ve yeni bir iş parçacığı oluşturmadan görevi çalıştırır, bu da çok fazla yük tasarrufu sağlar. Sistem, iş parçacıkları yalnızca iş parçacığı sayısı maksimum iplik sayısına ulaştığında otomatik olarak yok eder. Bu nedenle, iş örgüsü havuzlarını kullanmak büyük üretim ve imha masraflarını önleyebilir, daha iyi performans ve istikrar sağlar ve ikinci olarak, geliştiriciler iş parçacıklarını sistem yönetimine devrederek diğer görevlere odaklanabilir.


3. İplik havuzlarını nasıl kullanırım?

Aslında, iplik havuzları kullanımı çok basittir, aşağıdaki gibi

a. Maksimum ve minimum iş ipliği havuzunu belirleyin:

ThreadPool.SetMaxThreads (int workerThreads,int completionPortThreads)
Aynı anda aktif olabilecek bir iş başlığı havuzu için istek sayısını ayarlayın. Bu sayıdan büyük tüm istekler, iş parçacığı iş parçacığı kullanılabilir olana kadar kuyrakta kalacaktır. Ayrıca en az iş parçacığı sayısını da ayarlayabilirsiniz.

b. İş noktası havuzuna görevler ekleyin:

ThreadPool.QueueUserWorkItem(yeni WaitCallback(metod adı));

veya
ThreadPool.QueueUserWorkItem(yeni WaitCallback(metod adı), parametre);

Örneğin, iş havuzunda en fazla 5 iş parçacığı bir yöntemi 60 kez çalıştırırsa, 5 yıllık toplam maaş şu şekildedir:



Thread pooling kullanmıyorsanız, Run() yöntemini asenkron olarak çalıştırmak için 60 iş parçacığı açmanız gerekebilir ki bu da alan kaynaklarının boşa gitmesine yol açar. Şimdi 5 iş parçacığına kadar kullanıyoruz, bunlar 1 saniyede çalıştırılabiliyor ve verimlilik ile performans çok iyi.





Önceki:Baidu Haritası Tam Ekran Kodu (div tam ekran kodu)
Önümüzdeki:Alibaba Cloud'un yasa dışı URL erişim engelleme bildirimi
 Ev sahibi| Yayınlandı 21.06.2017 09:47:12 |

İplik havuzlarının şu avantajları vardır:

1. Çok iş parçacığı kullanımında, iş parçacığı havuzu oluşturduğumuz iş parçacığı sayısını azaltabilir ve iş parçacıklarını makul bir şekilde iş havuzundaki yeniden kullanabilir. Çünkü iş zinciri havuzunda iş ipliği olan iş parçaları atanmayı bekleme durumundadır.

2. Kısa ömürlü iş parçacıklarını yönetmeye ve sürdürmeye gerek yoktur, oluşturulduklarında kaynak tahsis etmeye ve görevlerini tamamladıktan sonra kaynakları serbest bırakmaya gerek yoktur.

3. İş ipliği havuzu, mevcut sistem özelliklerine göre havuzdaki iş parçacıklarını optimize edecektir.

İplik havuzlarının dezavantajları:

Görevi iş parçacığı havuzuna tamamlaması için teslim ettikten sonra, iş parçacığının önceliğini kontrol edemeyiz, iş parçacıklarının bazı isimlerini ve diğer bilgileri ayarlayamıyoruz. [Ama iplik havuzuna koymadan önce bunu geliştirmek için bir katman ekleyebiliriz]

Yayınlandı 6.12.2017 11:28:49 |
Önce işaretle, sonra öğrenebilirsin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com