callback机制

来源:互联网 发布:尚硅谷 java视频 编辑:程序博客网 时间:2024/05/23 16:46

callback机制

分类: Linux Linux内核 C 4708人阅读 评论(2) 收藏 举报
callbacktablereference聊天语言c
来源:  http://soacn.blogchina.com/1229663.html

一个主线程管理其它线程时,不用轮询方法检查各个线程的状态,而是在子线程中出现某种状态时通知主线程,啊,有人要按下我了,啊,我的值到达100了,(术语叫触发了某种事件)这样主线程收到这些消息再根据消息类型去调用相应的方法. 
一 个例子,我(主线程)坐车去北京,当车到北京时我要调用"下车"这个方法,如果不用回调用机制,我要不断地问driver,到了没有啊?如果我问超过三次 而那个driver力气又比我大的话,他肯定要打我,如果用回调用机制,就是用一个子线程(可以让driver承担这个角色)在那运行,当到的时候通知我 到了,我就调用"下车()",而不用过一会就问一次,这样我可以省下时间睡觉或和车上的美眉聊天.

callback机制的应用
对于c语言,一般都是用callback机制实现复用,这是一个普遍使用的复用机制。
声明一组函数指针接口,对于每种要支持的格式,分别实现之, 
用这些函数实例化这样的接口,也就是dispatch table 
然后在控制流程的某个地方,将某个dispatch table赋值给相应的table变量,相应的函数调用即为相应格式函数的调用。
比如编写字符设备驱动程序就是这样一个机制,程序员实现自己的open, read, write,close等函数,然后在系统中登记,当访问设备时系统就会自动调用用户自定义的函数

Reference:
 http://soacn.blogchina.com/1229663.html
 http://www.umlchina.com/best/g29/u1139357.htm
0 0