TCP套接字连接中同步与异步的优势

莫红

我目前正在学习来自Java背景的C#。为了弄清我的脚,我决定制作一个简单的SMTP邮件应用程序。而且我很快了解到C#同时支持同步和异步套接字。

据我所知,使用同步套接字与使用异步套接字并没有真正的优势,因为后者不会阻塞,因此不需要每次都创建一个新线程。使用一个或另一个似乎也没有明显的开销。

所以我的问题是,使用同步套接字是否有优势?在大多数情况下,坚持使用异步方法会更好吗?

彼得·杜尼奥

两种机制都会起作用。主要区别在于,同步意味着要么阻塞将执行其他有用操作的线程,要么将线程专用于每个连接。无论哪种方式,这都无法很好地扩展。对于只有很少或只有一个活动连接的简单应用程序,这可能是好的。

但是对于需要处理大量并发连接的任何情况,异步API都是唯一提供足够性能的应用程序。此外,在任何交互式场景中(即您必须处理用户输入和输出的情况),异步方法都更容易与用户界面集成。现在,我们有尤其如此async,并await在C#。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS:在套接字中读写(TCP连接)

来自分类Dev

套接字TCP连接

来自分类Dev

同步对TCP套接字的读写

来自分类Dev

异步 TCP 套接字问题

来自分类Dev

异步/等待套接字连接中的竞争条件

来自分类Dev

异步/等待套接字连接中的竞争条件

来自分类Dev

不同服务器中的套接字TCP连接

来自分类Dev

如何在套接字连接中接收 tcp 标志

来自分类Dev

异步TCP套接字-澄清吗?

来自分类Dev

异步TCP套接字的怪异行为

来自分类Dev

D中的异步套接字

来自分类Dev

Swift中的TCP套接字

来自分类Dev

C#套接字:异步调用中的同步调用

来自分类Dev

TCP套接字拒绝连接错误#10061

来自分类Dev

Qt TCP / IP套接字连接检查

来自分类Dev

防止重试TCP套接字连接

来自分类Dev

TCP套接字上的长连接

来自分类Dev

Mikrotik TCP/IP 套接字连接

来自分类Dev

Linux中的套接字连接

来自分类Dev

异常:connect:尝试连接到Haskell中的TCP套接字时不存在(连接被拒绝)

来自分类Dev

谈论套接字时的同步和异步术语

来自分类Dev

Spring Integration - 如何通过同一连接实现异步 TCP 套接字请求/响应?

来自分类Dev

在同步代码库中实现异步性能优势

来自分类Dev

在Python异步中检测套接字EOF

来自分类Dev

任务中的异步套接字操作

来自分类Dev

在TCP套接字连接期间获取对等方重置的连接?

来自分类Dev

服务器套接字编程TCP连接地址已在使用中

来自分类Dev

检查NodeJS中的TCP套接字是否已连接的任何方法

来自分类Dev

如何通过IOS中的TCP套接字查找其他已连接设备的延迟