剛剛接觸后端,問題表述的可能不是很恰當:
ReceiveAsync這個異步方法每次呼叫都會產生一個新的執行緒嗎?
如果是的話那是不是每次異步接收訊息都要創建一個執行緒,這樣執行緒的數目會不會過多呢?
uj5u.com熱心網友回復:
求大佬給個解釋,或者說下自己的見解也可以uj5u.com熱心網友回復:
執行緒是執行緒,異步是異步。別混執行緒是cpu級別,異步是IO級別。
至于什么執行緒多這類不是你考慮的事情。因為那些執行緒都是掛起的(等待結果并恢復)并不會有什么問題。
比如ReceiveAsync是等待網卡驅動給個IOCP完成信號,而不是你想的一個讓cpu去跑的執行緒
uj5u.com熱心網友回復:
當然借你的帖子我們可以澄清一下,執行緒和異步的關系(異步其實IO操作,他是信號量控制,而不是執行緒控制)也需要澄清一下IOCP,博客園動不動就是C# iocp如何如何。其實也是錯誤的,iocp機制是windows網卡驅動完成的,不是C#完成的。C#只是個應用方,不是實作方
uj5u.com熱心網友回復:
碼,同問,,,,現在在做一個socket的異步回呼............
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/262296.html
標籤:C#
