据我所知,同步和异步操作之间的主要区别。即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>
同步/异步运营商之间的差别并不太大感。
当然,在这两个操作中,程序流程总会有一定的风险 - 在某些情况下 - 使用定时器 - ,但我想知道更多关于此问题的授权意见。
我必须承认,这个问题是相当不明确的,但我想听听什么时候使用其中一个的建议。在使用MS Visual Studio进行调试时,我遇到了一些问题,这些问题涉及到我正在使用的POP3客户端中的异步SSL操作,有时候认为在这种情况下使用异步也许是个坏主意。
+1甚至没有接近不明确的问题。异步编程很难,不要羞于对它提出疑问。 – 2011-03-13 14:11:20