callback

  这两天看gevent相关内容,突然涉及到callback相关的问题,就觉得有必要深究一下其中的机制原理。网上找了好久,发现一篇http://www.zhihu.com/question/20748514

1 用户的输入设备发送信息给 device driver。
2 Device driver 将信息发给某些 manager 程序。比如说,大多数鼠标和键盘动作都会传给 window manager。
3 Window manager 会把这些动作翻译成 event,通过 IPC 机制传给 app。
4 App 的 UI framework 会把这些通过 IPC 接受到的 event 放到 event-queue 中。
5 你自己,或者 UI framework 会运行一个 loop。这个 loop 不停的去 event-queue 中取 event。
如果取到,event-loop 会调用相应的 callback。

  

另起一线程去轮询事件状态是关键,如果事件发生,会立马调用回调函数,执行。

 百度百科定义如下:

⑴定义一个回调函数;
⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;
⑶当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理

  ========

又发现一个好东西http://www.laruence.com/2009/09/23/1089.html这个算是解开了我许久的困惑!

原文地址:https://www.cnblogs.com/liuyongjians/p/3361488.html