gpt4 book ai didi

multithreading - TCP/IP套接字编程中同步传输和异步传输有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 02:30:48 25 4
gpt4 key购买 nike

我是 C++ 的新手,我正在尝试开发基于 boost::asio 库的客户端-服务器应用程序。我(仍然)无法正确理解同步和异步模式之间的区别。我以前研究过 HTTP 和 AJAX 等 Web 协议(protocol)服务。来自 this explanation ,很明显 HTTP 是同步的,AJAX 是异步的。 TCP套接字通信在同步和异步方面有什么区别?从企业级多线程应用开发的角度来看,哪种模式更好,为什么?

据我了解同步模式,客户端会阻塞一段时间,直到它从服务器接收到数据包/数据消息。并且在异步模式下,客户端在不阻塞当前操作的情况下执行另一个操作。为什么这是不同的? async 是 UDP 的同义词吗?似乎并不关心它是否收到传输确认。

最佳答案

  1. TCP 传输始终是异步的。什么是同步或异步是 API 的行为。同步 API 在您调用它时执行操作:例如,send() 将数据移动到 TCP 发送缓冲区并在完成后返回。异步 API 在您调用它时启动,在它返回给您后独立执行,然后回调您或提供一个可询问的句柄,通过它通知完成。

  2. HTTP 是同步的,因为您发送请求、接收响应、显示或处理响应,所有这些都按该顺序进行。

  3. Ajax 是异步的,只是因为它独立于周围 HTTP 请求中的页面请求/响应周期运行。这是一个糟糕的术语选择。最好使用诸如“嵌套”、“带外”...之类的术语。

关于multithreading - TCP/IP套接字编程中同步传输和异步传输有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com