什么是同步操作?什么又是异步操作?

时间:2020-12-11 18:46:17
MSDN中对ReadFile有如下的解释:

This function is designed for both synchronous and asynchronous operation. The ReadFileEx function is designed solely for asynchronous operation. It lets an application perform other processing during a file read operation.

synchronous and asynchronous operation 是什么意思?望高手解答

8 个解决方案

#1


这个函数被设计成既可以同步操作也可以异步操作。ReadFileEx函数只能异步操作。
就是说,你不必等着readfileex执行玩,就可以进行其他的操作。
这是必要的。
如何要涉及到很大的文件操作,有可能花5,6秒钟,不是异步的话就阻塞了,程序一直卡在这个函数上,你的鼠标,键盘都相应不了,用户可能认为是死机了,但异步操作不会出现这种问题。像是 并发

#2


同步是阻塞的,就是你做了这件事情,没做完就做不了别的事情了,异步就是做了做一件事情没做完,就可以去做别的事情了

#3


同步:函数返回时即功能完成,可以获得结果。
异步:函数返回时功能可能没有完成(根据返回值),并且在功能完成的时候通过另一种方式告诉你(比如回调)。

#4


ReadFile()同步的时候,当你数据没读完的时候,ReadFile下面的步骤是不会被执行的。
ReadFile()异步的时候,ReadFile函数会立即返回,然后执行ReadFile下面的语句。等数据读完后,系统会给你通知,让你去处理读到的数据。

我们一般读的数据比较小,所以感觉不到同步,异步的区别。

#5


同步可以理解成等待某一事件结束还能开始做下一件事情。
异步是两个事件可以同时进行。一个事件不需要等待另个事情完成以后才开始做

#6


同步例子:SendMessage
异步例子:PostMessage

#7


很清楚 ,SendMessage只有当任务执行完了才会返回,即为同步。
PostMessage在发出消息后立即返回(不管执行完没有),异步

#8


同步:
按顺序
异步:
既可以这样,也可以那样。
比如:有一个人吃饭,他是一口饭,一口青菜、一口荤菜。(同步)。
      有另外一个人:他先一口青菜、再一口饭、在一荤菜(异步)。

#1


这个函数被设计成既可以同步操作也可以异步操作。ReadFileEx函数只能异步操作。
就是说,你不必等着readfileex执行玩,就可以进行其他的操作。
这是必要的。
如何要涉及到很大的文件操作,有可能花5,6秒钟,不是异步的话就阻塞了,程序一直卡在这个函数上,你的鼠标,键盘都相应不了,用户可能认为是死机了,但异步操作不会出现这种问题。像是 并发

#2


同步是阻塞的,就是你做了这件事情,没做完就做不了别的事情了,异步就是做了做一件事情没做完,就可以去做别的事情了

#3


同步:函数返回时即功能完成,可以获得结果。
异步:函数返回时功能可能没有完成(根据返回值),并且在功能完成的时候通过另一种方式告诉你(比如回调)。

#4


ReadFile()同步的时候,当你数据没读完的时候,ReadFile下面的步骤是不会被执行的。
ReadFile()异步的时候,ReadFile函数会立即返回,然后执行ReadFile下面的语句。等数据读完后,系统会给你通知,让你去处理读到的数据。

我们一般读的数据比较小,所以感觉不到同步,异步的区别。

#5


同步可以理解成等待某一事件结束还能开始做下一件事情。
异步是两个事件可以同时进行。一个事件不需要等待另个事情完成以后才开始做

#6


同步例子:SendMessage
异步例子:PostMessage

#7


很清楚 ,SendMessage只有当任务执行完了才会返回,即为同步。
PostMessage在发出消息后立即返回(不管执行完没有),异步

#8


同步:
按顺序
异步:
既可以这样,也可以那样。
比如:有一个人吃饭,他是一口饭,一口青菜、一口荤菜。(同步)。
      有另外一个人:他先一口青菜、再一口饭、在一荤菜(异步)。