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中完成。

  • 相关阅读:
    爬虫练习
    爬取豆瓣电影top250
    简单爬虫
    正则提取子域名和ip
    用户体验培训总结
    测试经验总结
    项目管理知识总结
    读书笔记——《留住好员工:爱他们,还是失去他们?》
    ISTQB学习笔记
    数据结构和算法with Python
  • 原文地址:https://www.cnblogs.com/zxc2man/p/4720081.html
Copyright © 2011-2022 走看看