SORU
8 ŞUBAT 2012, ÇARŞAMBA


Havuzu.Queueuserworkıtem vs Görev.Fabrika.StartNew

ne aşağıda arasındaki farktır

ThreadPool.QueueUserWorkItem

vs

Task.Factory.StartNew

Eğer yukarıdaki kodu 500 kez uzun süre çalışan bazı görev yaptığı için çağrılırsa tüm iş parçacığı havuzu iş parçacığı alınan olacak mı?

Ya TRAFİK (2. seçenek) sadece iş parçacığı daha az ya da işlemci sayısı eşit almak için yeterince akıllı olacak?

CEVAP
8 ŞUBAT 2012, ÇARŞAMBA


Eğer VUK ile uzun süren bir görevi başlatmak için gidiyoruz, yani TaskCreationOptions.LongRunning, belirtmeniz gerekiryokiş parçacığı havuzu üzerinde zamanlama. (EDİT: yorum Olarak, bu kaydettizamanlayıcı özgü bir karar, ve sert ve hızlı bir garanti değildir, ancak herhangi bir mantıklı üretim zamanlayıcı iş parçacığı havuzu üzerinde uzun süre çalışan görev planlama önleyeceğini umut ediyorum.)

Kesinlikle iş parçacığı havuzu kendine uzun süren görevler, çok sayıda program gerekmiyor. Bu gün iş parçacığı havuzu varsayılan boyutu oldukça büyük olduğunu düşünüyorum sık sık bu şekilde istismar nedeniyle) ama temel olarak bu şekilde kullanılmamalıdır.

İş parçacığı havuzu noktası kaçınmaktırkısaaslında görevlerini yapıyorlar zamanı ile karşılaştırıldığında, yeni bir iş parçacığı oluşturma büyük bir hit alıyor. Eğer bu görevi uzun bir süre için çalışan, yeni bir iş parçacığı oluşturma etkisi nispeten az zaten olacak - ve potansiyel iş parçacığı havuzu iş parçacığı dışında sokmayı istemiyorum. (Daha az, ama ben değilyaptıdaha önceki sürümlerinde bu deneyimi .NET.)

Eğer bir seçeneğim olsaydı şahsen, ben kesinlikle Task API oldukça güzel gerekçesiyle VUK - ama kullanmak istiyorumyapınbu görev uzun süre çalıştırmak için beklediğiniz VUK söylemeyi unutma.

EDİT: yorumlarda da belirtildiği Gibi, aynı zamanda choosing between the TPL and the thread pool PFX takımın blog yazısı bkz

Sonuç olarak, CLR takımın Havuzu geliştirici zaten açıkladığından daha ifade edeyim:

Task is now the preferred way to queue work to the thread pool.

EDİT: yorumlardan Da bu VUK Eğer gerçekten istiyorsan custom schedulers kullanmak için izin verir unutma

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009