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

时间:2015-02-23 22:40:24

标签: c++ windows sockets network-programming terminology

我不完全明白当他们说出以下内容时的含义:" 异步读写操作"或" 同步读写操作"。

我将举例说明我对术语的理解,并纠正我的错误:

  • 在阻塞模式下对套接字进行读写操作被认为是同步的。
  • 在非阻塞模式下对套接字进行读写操作被视为异步。
  • 使用重叠I / O在套接字上进行读写操作被视为异步。

3 个答案:

答案 0 :(得分:4)

  

在阻塞模式下对套接字进行读写操作被认为是同步的。

  

在非阻塞模式下对套接字进行读写操作被认为是异步的。

没有。它是同步的。操作在当前线程中内联完成或失败。

  

使用重叠I / O在套接字上进行读写操作被视为异步。

正确。函数调用发布要完成的操作,该操作独立于当前线程进行,并且需要稍后的操作来确定其成功或失败,或者存在完成回调。

答案 1 :(得分:2)

没有。非阻塞套接字上的操作是同步的。

在Windows中,"重叠的I / O"是"异步I / O"。

的同义词

答案 2 :(得分:0)

我认为它与执行的调用线程有关。

同步意味着执行的调用线程与操作“同步”。因此,当调用返回时,调用线程具有可用的操作数据。

异步意味着执行的调用线程与操作同步。因此,当调用线程从操作返回时,它可能包含来自操作的数据,或者它可能没有;它需要处理这两种情况。