什么是同步接口和异步接口?
我的理解是是否处于同一线程;
但好像还有其他的例子,请各位高手给个解释。谢谢。
标题有点错误,请忽略
请问啥叫“动态接口”,啥叫“静态接口”?
写错了,谢谢
@leo_hua: 那请问啥叫“同步接口”,啥叫“异步接口”?
@Launcher: 知道,我就不会问了啊。
我的理解是如果是调用一般的函数,调用之后需要等待被调用函数运行结束再运行接下去的语句,这是同步;
异步是,创建一个新的线程,通过消息机制传递消息或者其他方式通信的。
但是好像跟其他人的理解有些不一样,麻烦能给我一个合理的解释吗
@leo_hua: C 中没有“接口”的概念,只有“方法”,我假设你想说的是“同步方法”和“异步方法”,那么请看这个 API:ReadFile(https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx),你告诉我这个方法是“同步方法”,还是“异步方法”?
@Launcher: 我看上面的意思既可以同步也可以异步,那么同步的意思是调用处接下去的语句需要等待ReadFile函数返回,异步的意思是不等待ReadFile函数返回就执行下面的语句???那在什么时候知道读取已经结束呢?
@leo_hua: 你要看 ReadFile 的说明:从 hFile 读取数据到 lpBuffer 缓冲区中。如果执行的是同步操作,那么当 ReadFile 调用返回时,要么调用失败,要么 lpBuffer 中就已经是读取到的数据;如果执行的是异步操作,当 ReadFile 调用返回时,要么调用失败,要么表示读取操作将异步完成,此时 lpBuffer 中是否已经有读取到的数据,需要用其它方式来检查异步操作的完成状态。根据你创建 hFile 的方式,此方法可以以“完成端口”或“重叠I/O”两种方式来检索异步操作的结束状态。
@Launcher: 所以那么什么是异步方法,什么是同步方法呢?
就是看是否直接返回??
@leo_hua: 这可不好说,因为我实在是不知道你这两个词从哪儿学来的。你知道还有种说法叫着“异步调用同步完成”么?
@Launcher: 公司里的一套代码,导师非得说是同步接口和异步接口,我没法理解啊
@leo_hua: 那你这样理解,“同步接口”就是函数返回后,它就完成了它的功能;“异步接口”就是函数返回后,它是否完成了它的功能,需要使用额外的机制来识别它的完成状态。
@Launcher: 非常感谢,有机会再向你学习