悟空学Linux专栏----第39篇

  最近沙僧休息了好久,唐僧希望沙僧能够讲工作队列,工作队列是Linux系统中最为重要的一个中断后半部分机制,也是最为实用的一种。这让沙僧很是高兴,所以一大早沙僧就兴奋的来到了课堂。

  沙僧:工作队列其实是将任务交给一个内核线程来执行,因此这部分代码总是在进程的上下文中执行。

  2号童鞋:老师,工作队列的线程和软中断的线程有什么区别呢?

  沙僧:啊,软中断中也有线程啊?这个我还真不知道哦?

  2号童鞋:八戒老师说了,软中断可以在线程中执行,不管你信不信,反正我信了。

  沙僧:哦,软中断应该不能在进程上下文中执行吧,而工作队列的这个线程可以在进程上下文中执行吧,而且软中断是不能够休眠的,但是工作队列执行的过程中是允许休眠的。这个对系统很重要,因为允许休眠就意味着,进程可以调度。而在软中断执行的过程中,进程是不能调度的。

  2号童鞋:那么老师,我们需要在什么情况下使用工作队列、什么情况下使用tasklet呢、什么情况下使用软中断呢?

  沙僧:如果执行的后半部分需要休眠,则选用工作队列,而且这是唯一的选择。如果后半部分不需要休眠,则尽量使用tasklet机制,这个机制具有软中断的特点,同时接口比较简单。除非特别需要注重效率,否则不建议使用软中断,因为同一种软中断可以同时在多个CPU上一起执行,所以软中断的执行的同步更多的需要程序员考虑。

  2号童鞋:老师可不可这么理解啊,就像医院里来看病的病人一样,软中断是急诊中的急诊,一刻也不能耽误,tasklet是急诊,而工作队列则是普通的病人,经常被急诊给打断。

  沙僧:这位同学悟性很高啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值