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