asenkron soket kullanımında thread yönetimini dert etmeme gerek var mı? çağrı geldiğinde thread havuzundan bir thread otomatik olarak alınıyormuş anladığım kadarıyla, ama çok fazla mesaj gelirse ve havuzda yeterli miktarda thread yoksa tıkanma olur mu diye endişeleniyorum. ayrıca kendim her soket için thread oluşturmalı mıyım, yoksa asenkron programlamada gerek yok mu buna?




 

yanli$ bilmiyorsam asenkron bir metod cagirdiginda client side'daki thread engel koyuyor ve server'dan data bekledigi icin sen server'a data gonderemiyorsun.

sourlemonade

asenkron demek handshaking yok demek. yani request'te bulunan client, server'dan gelen cevabi beklerken spinlock yerine kendini blocklar ve gorevi baska bir thread'a -ya da process-e verir. C# da da bu boyle olmali, kernel level threadler user level threadlerden daha sinirli oldugu icin dedigin gibi kernel pool u tukenebilir ve bu durumda operating system degisik kernek scheduling algoritmalarindan birini kullanarak siradaki task e oncelik verir. yani diyecegim o ki, thread havuzu dolsa bile, ayni anda o havuzdaki kernellerin hepsini kullanacak bir islem yapmadigin muddetce sorun olmaz.

egotm
1

mobil görünümden çık