加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

实例:一个服务器程序的架构介绍

发布时间:2019-01-29 18:45:33 所属栏目:外闻 来源:高性能服务器开发
导读:本文将介绍我曾经做过的一个项目的服务器架构和服务器编程的一些重要细节。 一、程序运行环境 操作系统:Centos 7.0 编译器:gcc/g++ 4.8.3、cmake 2.8.11 mysql数据库:5.5.47 项目代码管理工具:Visual Studio 2013 一、程序结构 该程序总共有 17 个线程

读到这里,你可能觉得工作线程所做的工作也不过就是调用 handle_io_events() 来接收网络数据,其实不然,工作线程也可以做程序业务逻辑上的一些工作。也就是在handle_other_things() 里面。那如何将这些工作加到 handle_other_things() 中去做呢?写一个队列,任务先放入队列,再让 handle_other_things() 从队列中取出来做?我在该项目中也借鉴了muduo库的做法。即 handle_other_things() 中调用一系列函数指针,伪码如下:

  1. void do_other_things()   
  2. {   
  3.     somefunc();   
  4. //m_functors是一个stl::vector,其中每一个元素为一个函数指针   
  5. void somefunc()   
  6. {   
  7.     for (size_t i = 0; i < m_functors.size(); ++i)   
  8.     {   
  9.         m_functors[i]();   
  10.     }   
  11.  
  12.     m_functors.clear();   

//m_functors是一个stl::vector,其中每一个元素为一个函数指针 void somefunc() { for (size_t i = 0; i < m_functors.size(); ++i) { m_functors[i](); } m_functors.clear(); }

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读