据我所知,同步和异步操作之间的主要区别.即write()或read()VS async_write()并且async_read()是前者,不返回,直到操作完成-或无差错,以及最后的,立即返回.
由于异步操作由一个io_service.run()在受控操作完成之前未完成的操作控制.在我看来,顺序操作中涉及与POP3等协议的TCP/IP连接,其中操作是如下序列:
C: <connect>
S: Ok.
C: User...
S: Ok.
C: Password
S: Ok.
C: Command
S: answer
C: Command
S: answer
...
C: bye
S: <close>
Run Code Online (Sandbox Code Playgroud)
同步/异步运算符之间的区别没有多大意义.
当然,在这两种操作中,总是存在程序流程在某些情况下无限期停止的风险 - 使用计时器 - 但我想知道一些更多的授权意见.
我必须承认这个问题定义不明确,但我想听听一些关于何时使用其中一个的建议.我在使用MS Visual Studio调试关于我正在使用的POP3客户端中的异步SSL操作时遇到了问题,有时候认为在这个问题上使用异步可能是个坏主意.