Linux多线程服务端编程:使用muduo C++网络库 PDF 高清电子书 免费下载 完整版 在线阅读- 高飞网
Linux多线程服务端编程

Linux多线程服务端编程
使用muduo C++网络库

陈硕 著
C++ 多线程 Linux 网络
浏览人数:48
读者:                   ...
  《Linux多线程服务端编程》主要讲述采用现代 C++ 在 x86-64 Linux 上编写多线程 TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在Linux 下以 native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。《Linux多线程服务端编程》以muduo网络库为例,讲解这种编程模型的使用方法及注意事项。《Linux多线程服务端编程》的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务系统。

第 1 部分 C++ 多线程系统编程   
第 1 章 线程安全的对象生命期管理   
1.1 当析构函数遇到多线程   
1.2 对象的创建很简单   
1.3 销毁太难   
1.4 线程安全的 Observer 有多难   
1.5 原始指针有何不妥   
1.6 神器 shared_ptr/weak_ptr   
1.7 插曲:系统地避免各种指针错误   
1.8 应用到 Observer 上   
1.9 再论 shared_ptr 的线程安全   
1.10 shared_ptr 技术与陷阱   
1.11 对象池   
1.12 替代方案   
1.13 心得与小结   
1.14 Observer 之谬   
第 2 章 线程同步精要   
2.1 互斥器(mutex)   
2.2 条件变量(condition variable)   
2.3 不要用读写锁和信号量   
2.4 封装 MutexLock、MutexLockGuard、Condition   
2.5 线程安全的 Singleton 实现   
2.6 sleep(3) 不是同步原语   
2.7 归纳与总结   
2.8 借 shared_ptr 实现 copy-on-write   
第 3 章 多线程服务器的适用场合与常用编程模型   
3.1 进程与线程   
3.2 单线程服务器的常用编程模型   
3.3 多线程服务器的常用编程模型   
3.4 进程间通信只用 TCP   
3.5 多线程服务器的适用场合   
3.6 “多线程服务器的适用场合”例释与答疑   
第 4 章 C++ 多线程系统编程精要   
4.1 基本线程原语的选用   
4.2 C/C++ 系统库的线程安全性   
4.3 Linux 上的线程标识   
4.4 线程的创建与销毁的守则   
4.5 善用 __thread 关键字   
4.6 多线程与 IO   
4.7 用 RAII 包装文件描述符   
4.8 RAII 与 fork()   
4.9 多线程与 fork()   
4.10 多线程与 signal   
4.11 Linux 新增系统调用的启示   
第 5 章 高效的多线程日志   
5.1 功能需求   
5.2 性能需求   
5.3 多线程异步日志   
5.4 其他方案   
第 2 部分 muduo 网络库   
第 6 章 muduo 网络库简介   
6.1 由来   
6.2 安装   
6.3 目录结构   
6.4 使用教程   
6.5 性能评测   
6.6 详解 muduo 多线程模型   
第 7 章 muduo 编程示例   
7.1 五个简单 TCP 示例   
7.2 文件传输   
7.3 Boost.Asio 的聊天服务器   
7.4 muduo Buffer 类的设计与使用   
7.5 一种自动反射消息类型的 Google Protobuf 网络传输方案   
7.6 在 muduo 中实现 Protobuf 编解码器与消息分发器   
7.7 限制服务器的最大并发连接数   
7.8 定时器   
7.9 测量两台机器的网络延迟和时间差   
7.10 用 timing wheel 踢掉空闲连接   
7.11 简单的消息广播服务   
7.12 “串并转换”连接服务器及其自动化测试   
7.13 socks4a 代理服务器   
7.14 短址服务   
7.15 与其他库集成   
第 8 章 muduo 网络库设计与实现   
8.0 什么都不做的 EventLoop   
8.1 Reactor 的关键结构   
8.2 TimerQueue 定时器   
8.3 EventLoop::runInLoop() 函数   
8.4 实现 TCP 网络库   
8.5 TcpServer 接受新连接   
8.6 TcpConnection 断开连接   
8.7 Buffer 读取数据   
8.8 TcpConnection 发送数据   
8.9 完善 TcpConnection   
8.10 多线程 TcpServer   
8.11 Connector   
8.12 TcpClient   
8.13 epoll   
8.14 测试程序一览   
第 3 部分 工程实践经验谈   
第 9 章 分布式系统工程实践   
9.1 我们在技术浪潮中的位置   
9.2 分布式系统的可靠性浅说   
9.3 分布式系统中心跳协议的设计   
9.4 分布式系统中的进程标识   
9.5 构建易于维护的分布式程序   
9.6 为系统演化做准备   
9.7 分布式程序的自动化回归测试   
9.8 分布式系统部署、监控与进程管理的几重境界   
第 10 章 C++ 编译链接模型精要   
10.1 C 语言的编译模型及其成因   
10.2 C++ 的编译模型   
10.3 C++ 链接(linking)   
10.4 工程项目中头文件的使用规则   
10   
看过本书的人还看过