首页 新闻 会员 周边

c语言的动态接口和静态接口

0
悬赏园豆:20 [已解决问题] 解决于 2015-10-09 19:38

什么是同步接口和异步接口?

我的理解是是否处于同一线程;

但好像还有其他的例子,请各位高手给个解释。谢谢。

标题有点错误,请忽略

__sipl的主页 __sipl | 初学一级 | 园豆:147
提问于:2015-10-09 13:12
< >
分享
最佳答案
0

请问啥叫“动态接口”,啥叫“静态接口”?

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2015-10-09 15:16

写错了,谢谢

__sipl | 园豆:147 (初学一级) | 2015-10-09 16:06

@leo_hua: 那请问啥叫“同步接口”,啥叫“异步接口”?

Launcher | 园豆:45045 (高人七级) | 2015-10-09 16:18

@Launcher: 知道,我就不会问了啊。

我的理解是如果是调用一般的函数,调用之后需要等待被调用函数运行结束再运行接下去的语句,这是同步;

异步是,创建一个新的线程,通过消息机制传递消息或者其他方式通信的。

但是好像跟其他人的理解有些不一样,麻烦能给我一个合理的解释吗

__sipl | 园豆:147 (初学一级) | 2015-10-09 16:26

@leo_hua: C 中没有“接口”的概念,只有“方法”,我假设你想说的是“同步方法”和“异步方法”,那么请看这个 API:ReadFile(https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx),你告诉我这个方法是“同步方法”,还是“异步方法”?

Launcher | 园豆:45045 (高人七级) | 2015-10-09 16:38

@Launcher: 我看上面的意思既可以同步也可以异步,那么同步的意思是调用处接下去的语句需要等待ReadFile函数返回,异步的意思是不等待ReadFile函数返回就执行下面的语句???那在什么时候知道读取已经结束呢?

__sipl | 园豆:147 (初学一级) | 2015-10-09 16:56

@leo_hua: 你要看 ReadFile 的说明:从 hFile 读取数据到 lpBuffer 缓冲区中。如果执行的是同步操作,那么当 ReadFile 调用返回时,要么调用失败,要么 lpBuffer 中就已经是读取到的数据;如果执行的是异步操作,当 ReadFile 调用返回时,要么调用失败,要么表示读取操作将异步完成,此时 lpBuffer 中是否已经有读取到的数据,需要用其它方式来检查异步操作的完成状态。根据你创建 hFile 的方式,此方法可以以“完成端口”或“重叠I/O”两种方式来检索异步操作的结束状态。

Launcher | 园豆:45045 (高人七级) | 2015-10-09 17:11

@Launcher: 所以那么什么是异步方法,什么是同步方法呢?

就是看是否直接返回??

__sipl | 园豆:147 (初学一级) | 2015-10-09 17:16

@leo_hua: 这可不好说,因为我实在是不知道你这两个词从哪儿学来的。你知道还有种说法叫着“异步调用同步完成”么?

Launcher | 园豆:45045 (高人七级) | 2015-10-09 17:17

@Launcher: 公司里的一套代码,导师非得说是同步接口和异步接口,我没法理解啊

__sipl | 园豆:147 (初学一级) | 2015-10-09 17:27

@leo_hua: 那你这样理解,“同步接口”就是函数返回后,它就完成了它的功能;“异步接口”就是函数返回后,它是否完成了它的功能,需要使用额外的机制来识别它的完成状态。

Launcher | 园豆:45045 (高人七级) | 2015-10-09 17:32

@Launcher: 非常感谢,有机会再向你学习

__sipl | 园豆:147 (初学一级) | 2015-10-09 19:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册