muduo
Baymax_yan
C++,后台服务器,机器视觉,图像处理
展开
-
linux 多线程服务端编程读书笔记(一)
linux 多线程服务端编程读书笔记(一) 第一章 线程安全的对象生命期管理 1、class线程安全的三个条件: 多个线程访问表现出正确的行为 无论操作系统如何调度,以及线程的执行顺序如何 调用端代码不需要额外的同步与协调动作 由此,STL大多数的class都不是线程安全的,需要外部加锁才能同时访问 MutexLock与MutexLockGuard 2、线程安全的对象构造方法 ...原创 2019-05-24 17:47:50 · 742 阅读 · 0 评论 -
muduo网络库源码剖析系列
1.muduo源码剖析专栏 注: 此系列来自于专栏:https://blog.csdn.net/FreeeLinux/column/info/13805 muduo库的Socket封装 muduo库的Acceptor类剖析 muduo库的TcpServer和TcpConnection用法 muduo应用层缓冲区设计 muduo库TcpConnection对send、shutdown、SIGPIP...原创 2019-05-29 15:27:16 · 758 阅读 · 0 评论 -
STL中的bind 与boost中的bind
STL中的bind 与boost中的bind C++11 中的std::function和std::bind boost::bind 函数绑定器原创 2019-05-27 15:55:01 · 812 阅读 · 0 评论 -
Linux 多线程服务端编程读书笔记(八)
Linux 多线程服务端编程读书笔记(八) 第八章 muduo 网络库设计与实现 这一章从0开始实现一个类似muduo的基于Reactor模式的C++网络库 1、 Evenloop类 one loop per thread 顾名思义每个线程都只能有一个Evenloop对象。故构造之前要检查当前线程是否已经创建 其构造函数会记住本对象所属的线程,创建了Evenloop对象的线程时IO线程,主要...原创 2019-05-26 19:53:05 · 223 阅读 · 0 评论 -
Linux 多线程服务端编程读书笔记(七)
Linux 多线程服务端编程读书笔记(七) 第七章 muduo编程示例 1、UNP 中五个简单的示例 discard:丢弃所有收到的数据,简单的长连接TCP应用层协议 void DiscardServer::onMessage(const TcpConnectionPtr& conn, Buffer* buf, ...原创 2019-05-25 22:13:12 · 255 阅读 · 0 评论 -
Linux 多线程服务端编程读书笔记(六)
Linux多线程服务端编程笔记(六) 从这一章开始开始探究muduo网络库部分 第六章 muduo网络库简介 1、 muduo网络库的一些介绍 muduo 是基于 Reactor 模式的网络库,其核心是个事件循环 EventLoop,用于响应计时器和 IO 事件。 muduo 采用基于对象(object- based)而非面向对象( objectoriented)的设计风格,其事件回调接口多以 ...原创 2019-05-25 15:51:34 · 328 阅读 · 0 评论 -
Linux 多线程服务端编程读书笔记 (五)
Linux 多线程服务端编程笔记(五) 第五章 高效的多线程日志 1、 两种日志 交易日志 诊断日志 2、 关键进程记录的日志 日志通常需要记录: 收到的每条内部消息的 ID、关键字段、长度、hash 值等。 收到的每条外部消息的全文。 发送消息的全文,每条消息都有全局唯一的id 关键内部状态的变更 另外: 每条日志都有时间戳 一个日志库大致分为:前端 - 生成日志;后端 - 把日志写到...原创 2019-05-25 15:50:57 · 430 阅读 · 1 评论 -
Linux 多线程服务端编程读书笔记(四)
Linux多线程服务端编程笔记(四) 第四章 C++多线程系统编程精要 1、多线程编程最大的思维方式的转变有两点 当前线程可能随时会被切换出去,被抢占 多线程程序中事件的发生顺序不再是全局统一的先后关系 2、 多线程程序的正确性 不能依赖任何一个线程的执行速度 不能通过原地等待(sleep)来假定其他线程事件已经发生,必须通过适当的同步来让当前事件能够看到其他线程执行的结果 无论线程执行的快...原创 2019-05-25 15:50:24 · 243 阅读 · 0 评论 -
Linux 多线程服务端编程读书笔记(三)
Linux 多线程服务端编程笔记(三) 第三章 多线程服务器的适用场合与常用编程模型 1、进程与线程 每个进程都有自己独立的地址空间 线程的特点是共享地址空间,从而有效的共享数据。多个进程能有效的共用代码段(操作系统可以映射为同样的代码段),但不能共享数据 多线程的价值是为了更好的发挥多核处理器效能 2、单线程服务器的常用编程模型用 模型: non-blocking IO + IO mult...原创 2019-05-25 15:49:38 · 335 阅读 · 0 评论 -
linux 多线程服务端编程读书笔记(二)
linux 多线程服务端编程读书笔记(二) 第二章 线程同步精要 1、线程同步思想原则 尽量最低限度地共享对象,减少需要同步的场合。如果确实需要,优先考虑共享 immutable 对象。 使用高级的并发编程构建 不得已必须使用底层同步原语(primitives)时,只用非递归的互斥器和条件变量,慎用读写锁,不要用信号量。 除了使用 atomic 整数之外,不自己编写 lock-free 代码,也...原创 2019-05-24 19:14:49 · 332 阅读 · 1 评论 -
Reactor模式
本文截取自:https://blog.csdn.net/plgy_Y/article/details/80472694 无论是C++还是Java编写的网络框架,大多数都是基于Reactor模式进行设计和开发,Reactor模式基于事件驱动,特别适合处理海量的I/O事件。 1.2.1. 单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1...转载 2019-06-09 21:51:34 · 188 阅读 · 1 评论