美文网首页
读书笔记:LLD3 (3)异步通知

读书笔记:LLD3 (3)异步通知

作者: rlkbk | 来源:发表于2016-04-14 23:35 被阅读0次

异步通知:poll此类方法是采用轮询机制实现,有时不算一个好方法。而通过异步通知,应用程序可以在数据可用时收到一个信号,而不需要不停得使用轮询来关注数据。

异步通知的实现:

首先,它们之地给一个进程作为文件的“属主(owner)”。采用F_SETOWN命令,属主的进程ID就保存在filp->f_owner中。

设置FASYNC标志。通过F_SETFL命令实现。

实例代码(ldd3):

signal(SIGIO,&input_handler);

fcntl(STDIN_FILENO,F_SETOWN,getpid());

oflags = fcntl(STDIN_FILENO,F_GETFL);

fcntl(STDIN_FILENO,F_SETFL,oflags | FASYNC);

驱动程序要调用的两个函数的原型:

int fasync_helper(int fd, struct file *filp, int mode, struct fasync_struct **fa);

void kill_fasync(struct fasync_struct **fa, int sig, int band);

fasync_helper是在FASYNC标志被修改时调用,比如调用release()函数时。

kill_fasync函数是在异步通知时调用,比如当向缓存区写入数据后,通知进程读取缓存上的数据。

2016.04.15

相关文章

  • 读书笔记:LLD3 (3)异步通知

    异步通知:poll此类方法是采用轮询机制实现,有时不算一个好方法。而通过异步通知,应用程序可以在数据可用时收到一个...

  • PHP服务端支付宝APP支付

    1.配置参数 2.引入支付宝SDK 3.异步通知

  • 支付宝手机网站支付-异步通知验证

    异步通知的触发条件 服务器异步通知参数获取 1保证服务器异步通知页面上没有任何字符,如空格、HTML标签、开发系统...

  • iOS通知学习

    学习通知提出的几个问题,1、一般的通知方式(同步的)2、如何定义异步通知3、通知与线程的关系4、如何在不同线程发送...

  • NSNotificationCenter异步通知

    先说结论:异步线程发送的Notification,也会在对应的线程中接到通知,并且,对于通知本身是同步执行的 同异步测试

  • 高并发原理研究和探索

    详细了解同步与异步,阻塞与非阻塞。 1、同步与异步 同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。...

  • 简单理解异步,非阻塞和 IO 复用

    1.1 同步与异步 同步与异步的理解 同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。同步: 当一个...

  • Paper Collection - NSNotifi

    通知是同步还是异步? 通知详解(关于移除和重复添加)

  • 无标题文章

    # IM红包后端接口API [TOC] ## 1、接收支付宝异步通知接口 * 描述 用于处理支付宝异步通知; *...

  • Android之异步、消息、通知、菜单

    异步、消息、通知、菜单 异步任务---AsyncTask 为什么要异步任务 Android单线程模型 耗时操作放在...

网友评论

      本文标题:读书笔记:LLD3 (3)异步通知

      本文链接:https://www.haomeiwen.com/subject/vbtnlttx.html