Bir temsilci kullanma Asenkronize olarak herhangi bir işlevi çağırabilirim. Anladığım belgelerden, bu iş parçacığı için bir workitem kuyruğa alınarak yapılır.Eşzamansız çağrılar ve asenkronize io çağrıları arasındaki fark .net
Aynı zamanda IO işlevlerine (yuva, dosya, web sayfası vb. Okuma gibi) eşzamansız çağrılar da gerçekleştirilebilir. Bence (ama emin değilim) bu threadpool bir workitem doğurmaz. Sadece sonuç elde edildikten sonra (veya bir hata), threadpool'daki yeni bir iş parçacığı denilen çağrıdır.
Bu varsayım doğru mu? Ya da eşzamanlı bir IO çağrısı, aynı zamanda kapakların altında sadece ortaya çıkan bir iplik var mı? Eğer durum buysa, eşzamansız çağrılar yumurtlama ipliklerinden (threadboard kullanarak) kendinizinkinden daha iyi bir performans olabilir ve nasıl bloke edilebilir?
Ayrıca: herhangi bir zamanda kaç tane eşzamanlı çağrı yapılmıyor olabilir? Bir threadpool kullanılıyorsa, istediğiniz kadar tahmin ediyorum. Ancak IO asenkronize çağrılarda, bir sınır var mı? Ve öyle, sınırın ne olduğunu nereden biliyorsun?
@sergey: Yani gerçekten bir fark olduğunu söylüyorsunuz. Öyleyse kaç tane IO'nun istediği herhangi bir zamanda kan talep ediliyor? Sweetspot nedir? Bu, IO'nun hedefine ya da başka bir şeye bağımlı mı? Birisi nasıl bilebilir? – Toad
Simle cevap: buna bağlı. IO Tamamlama bağlantı noktalarını kullanırsanız (bu en karmaşık ancak en güçlü tekniktir) OS, tüm etkin IO görevlerini ele almak için mümkün olduğunca az iş parçacığı (donanım yapılandırmanıza bağlı olarak) oluşturacaktır. Uyarlanabilir IO kullanmak, her biri için bir iş parçacığı gerektirir! IO işlemleri beklemede. İşte bu yüzden IO Coplection portları çok daha etkili ve ölçeklenebilir: siz çok iş yapabilirsiniz! simultanious IO en az kaynak ile talepleri. Tüm bunları anlayabilmek için "C/C++ aracılığıyla Windows" veya "Sunucu tarafı uygulaması programlama" nın Jeffrey Richter tarafından okunması gerektiğini düşünüyorum. Oldukça zor şeyler! –
@reinier Sınırlar, CPU sayınızdan Windows lisans anahtarınıza kadar olan her şeyi temel alır. Fakat sınırlar önemli değil - BCL tarafından size sunulan eşzamansız yöntemleri kullandığınız sürece, bildiğiniz gibi * sizden daha iyi bir ölçeklenebilirlik elde edersiniz. 'QueueUserWorkItem'. – bzlm