摘要: 多线程服务器 编程模型 多线程的价值在于发挥多核处理器的性能,单核使用状态机是最高效的。 提高平均响应时间 TCP网络编程 本质 处理三个半事件 1. 连接的建立 2. 链接的断开 3. 消息到达 4. 消息发送完毕,对于低流量的服务不必关心 one loop per thread 好处: 1. 线 阅读全文
posted @ 2018-04-29 16:17 joeylee97 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 高效并发编程 并发编程的基本模型包括,通过消息机制来管理运行顺序的message passing, 通过互斥保护共享的shared memory。 线程同步的基本原则 1. 最低限度共享变量,考虑使用immutable对象 2. 尽量减小锁粒度 3. 互斥器和条件变量足以完成绝大多数任务,尽量使用高 阅读全文
posted @ 2018-04-29 15:02 joeylee97 阅读(2288) 评论(0) 推荐(0) 编辑
摘要: 线程安全的对象生命期管理 解决对象构造的线程安全 当我们需要动态分配对象时( 懒加载 ), 如果在多个线程中运行这一部分代码,可能出现多次初始化的问题。 单例模式 c++ 11 之后static 变量的初始化是线程安全的。可以利用静态变量来实现单例模式,解决重复初始化的问题。 std::call_o 阅读全文
posted @ 2018-04-29 14:24 joeylee97 阅读(334) 评论(0) 推荐(0) 编辑