zoukankan      html  css  js  c++  java
  • INIT_WORK

    借助runtime pm,在需要使用模块时,增加引用计数(可调用pm_runtime_get),不需要使用时,减少引用计数(可调用pm_runtime_put)。

    1.INIT_WORK(struct work_struct *work, void (*function)(void *), void *data)
    上面一句只是定义了work和work对应的操作。
    要是在实际使用的时候还是需要你去在适当的条件下激活这个work。只有激活了这个work,
    这个work才有运行的机会。这个激活操作接口是shudule_work或是queue_work。
    这两个接口之后只是说这个work有了运行的机会,但是具体到什么时候运行,那要看你用哪个接口激活的。
    如果是shudule_work的话,系统中有个events内核线程,这个线程会处理你用shudule_work接口激活
    的所有work。如果是queue_work的话,一般这种情况都是自己创建了一个单独的处理线程,这样将
    你激活的work和这个线程联系起来。至于什么时候运行,那就是events或是你定义的特定线程运行的时候。

    2.至于你提到的为什么要用到work。这个的话,我个人的理解是:一般用在对耗时处理上。比如,
    当中断发生的时候,你可以在中断上下文中完成激活操作,让那些耗时的操作在work中完成。

  • 相关阅读:
    最大熵模型中的数学推导
    最大似然估计总结
    减压放松的一些网站
    决策树
    【转】贝叶斯分类干货
    【转】数学之美番外篇:平凡而又神奇的贝叶斯方法
    信号量与并发控制
    枚举与字符串映射
    Block与参数
    Sublime Text 小计
  • 原文地址:https://www.cnblogs.com/zxc2man/p/4720081.html
Copyright © 2011-2022 走看看