我目前正在学习来自Java背景的C#。为了弄清我的脚,我决定制作一个简单的SMTP邮件应用程序。而且我很快了解到C#同时支持同步和异步套接字。
据我所知,使用同步套接字与使用异步套接字并没有真正的优势,因为后者不会阻塞,因此不需要每次都创建一个新线程。使用一个或另一个似乎也没有明显的开销。
所以我的问题是,使用同步套接字是否有优势?在大多数情况下,坚持使用异步方法会更好吗?
两种机制都会起作用。主要区别在于,同步意味着要么阻塞将执行其他有用操作的线程,要么将线程专用于每个连接。无论哪种方式,这都无法很好地扩展。对于只有很少或只有一个活动连接的简单应用程序,这可能是好的。
但是对于需要处理大量并发连接的任何情况,异步API都是唯一提供足够性能的应用程序。此外,在任何交互式场景中(即您必须处理用户输入和输出的情况),异步方法都更容易与用户界面集成。现在,我们有尤其如此async
,并await
在C#。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句