同步API和异步API随想
来源:互联网 发布:黑马就业班java单词表 编辑:程序博客网 时间:2024/04/29 18:12
当完成一个系统需要提供给第三方使用的时候,如何让第三方更好的使用呢?我们通常会提供一个库以及一个头文件(接口说明);如果第三方不仅需要同步调用接口同时又需要异步调用的接口,那么其实一个API库的实现还是比较复杂的。
同步调用: 调用后等待它返回;
异步调用: 调用后立即返回,待稍后去查询是否完成;
同步API库比较容易实现,谈谈异步API库的实现:
提供给调用者的接口:
1) 调用者调用接口 --- Add_Task,并得到Task的标识ID;
2) 在一定的时候去探询任务是否完成 --- Task_Poll;
API库的实现:
1) 调用者进行API初始化,启动后端处理线程,线程处于条件等待状态;
2) 调用者调用放入任务的接口,任务放入队列中,并返回Task的Id,并唤醒线程;
3) 后端线程去取队列中的任务,进行“处理” ---- 本地处理 ; 远端的网络处理(多路复用)
4) 处理完后,将结果再放回到队列中
5) 调用者通过探询来取回已经完成的Task
备注:
线程换成进程;队列采用是双通道IPC的方式;
UDP包: 每个包需要一个Seq标识,用来回包时找到Task;
TCP包: 如果每个Socket不共用的话,则不需要Seq标志,通过socket --> _flow_no --> Task;
如果每个Socket共用的话,则需要Seq标识
- 同步API和异步API随想
- 将异步API改成同步调用
- Zookeeper的API调用的同步和异步机制以及watcher机制总结
- 使用Fetch API和ES6生成器构建异步API
- 百度地图API之地图加载方式(同步、异步)
- 【Objective-C】Http常用API、同步请求与异步请求
- 【Objective-C】Http常用API、同步请求与异步请求
- windows 和linux 同步api对比
- windows 和linux 同步api对比
- Hiredis异步API
- PromiseKit 封装异步Api
- 异步API Fetch
- 随想录(网站api的设计)
- Windows线程同步API
- Windows线程同步API
- Windows线程同步API
- Windows线程同步API
- Windows线程同步API
- 星海第十天
- 利用javascript实现页面刷新的方法
- jiffies相关的4个宏
- 浅谈C#托管程序中的资源释放问题
- ISO/IEC 14443协议浅谈
- 同步API和异步API随想
- window.open()
- 合并 GridView 的表头单元格
- 王子工作室
- 2010-8-24
- spring 中事务的Readonly的解释
- SQL Case的用法
- Android中MenuInflater实例
- 烦躁 沉思