实例:一个服务器程序的架构介绍
读到这里,你可能觉得工作线程所做的工作也不过就是调用 handle_io_events() 来接收网络数据,其实不然,工作线程也可以做程序业务逻辑上的一些工作。也就是在handle_other_things() 里面。那如何将这些工作加到 handle_other_things() 中去做呢?写一个队列,任务先放入队列,再让 handle_other_things() 从队列中取出来做?我在该项目中也借鉴了muduo库的做法。即 handle_other_things() 中调用一系列函数指针,伪码如下:
//m_functors是一个stl::vector,其中每一个元素为一个函数指针 void somefunc() { for (size_t i = 0; i < m_functors.size(); ++i) { m_functors[i](); } m_functors.clear(); } (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |