FDBus CBaseWork运行在当前线程
在FDBus中,CBaseWorker是一个工作者线程类,其本身可以包含一个或者多个独立线程,用于执行该Worker上的Timer,Job等。
例如,我们可以创建CBaseWorker的时候指定这个Work内部有几个工作线程:
m_worker = CBaseWorker::createWorker(4); //worker内部4个内部线程
m_worker->sendAsync([=]{// 在工作线程中处理耗时操作processRequest(msg);});
但是,有些情况下,我们希望让Worker使用当前线程作为工作线程,这种情况下,start这个CBaseWorker的时候需要指定参数
CBaseWorker worker("myWorker");
worker.start(FDB_WORKER_EXE_IN_PLACE);
这样,worker就占据了当前线程作为工作线程并且阻塞了当前线程。