Fdbus的一些记录

1、FDBus工作线程

1.1 FDBus CBaseWorker thread的工作机制

基于FDBus框架的CBaseWorker类通常会在一个独立的线程中执行工作任务。它的工作机制通常包括以下几个方面:
1.任务队列管理:CBaseWorker通常会维护一个任务队列,用于存储需要执行的工作任务。当有新的任务到来时,会被加入到任务队列中。
2.事件循环:CBaseWorker可能会使用事件循环机制,不断地从任务队列中取出任务,并执行相应的回调函数。这样可以保证任务按顺序得到执行,并且不会阻塞主线程。
3.异步执行:CBaseWorker通常会以异步的方式执行任务,这意味着它可以在执行任务的过程中继续处理其他任务,而不必等待当前任务执行完成。
4.线程管理:CBaseWorker会创建一个独立的工作线程,用于执行任务队列中的任务。这样可以避免任务执行过程中阻塞主线程,提高系统的并发处理能力。
总的来说,CBaseWorker的工作机制涉及任务队列管理、事件循环、异步执行和线程管理等方面,以确保任务能够在独立的工作线程中得到执行,并且不会阻塞主线程。这种机制可以提高系统的并发处理能力,同时保证任务的有序执行。
注意:在CBaseWorker的任务队列中,如果某项任务一直卡在那里无法执行完成,会阻塞其它任务。这是因为CBaseWorker通常是单线程执行任务的,如果一个任务一直卡在那里无法完成,那么后面加入队列的任务就无法被执行。这可能会导致任务队列中的其他任务无法及时执行,从而影响整个系统的性能和响应速度。

1.2 fdbus CBaseWorker thread的任务队列中没有任务时,CBaseWorker thread 占用CUP资源吗?

在一般情况下,当CBaseWorker的任务队列中没有任务时,CBaseWorker thread 不会占用CPU资源。这是因为当任务队列为空时,线程会进入休眠状态并等待新的任务到来。在这种情况下,线程会处于空闲状态,不会占用CPU资源。
然而,具体行为还取决于CBaseWorker的实现方式。有些实现可能会定期轮询任务队列,即使队列为空也会不断检查,这可能会导致一定程度的CPU占用。但一般来说,良好设计的CBaseWorker应该能够有效地避免空任务队列时的不必要CPU占用。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值