Linux多线程服务端编程 高清PDF 百度网盘

151 阅读2分钟

Linux多线程服务端编程 高清PDF 百度网盘 点击下载 封面2.png 内容简介 · · · · · ·
本书主要讲述采用现代C++ 在x86-64 Linux 上编写多线程TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。这是在Linux 下以native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。

本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务统。

作者简介 · · · · · ·
陈硕,北京师范大学硕士,擅长C++ 多线程网络编程和实时分布式系统架构。曾在摩根士丹利IT 部门工作5 年,从事实时外汇交易系统开发。现在在美国加州硅谷某互联网大公司工作,从事大规模分布式系统的可靠性工程。编写了开源C++ 网络库muduo,参与翻译了《代码大全( 第2 版)》和《C++ 编程规范(繁体版)》,整理了《C++ Primer (第4 版)(评注版)》,并曾多次在各地技术大会演讲。

目录 · · · · · ·
第1 部分C++ 多线程系统编程1
第1章 线程安全的对象生命期管理3
1.1 当析构函数遇到多线程. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 线程安全的定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 MutexLock 与MutexLockGuard . . . . . . . . . . . . . . . . . . . . 4
1.1.3 一个线程安全的Counter 示例. . . . . . . . . . . . . . . . . . . . 4
1.2 对象的创建很简单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 销毁太难. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 mutex 不是办法. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 作为数据成员的mutex 不能保护析构. . . . . . . . . . . . . . . 8
1.4 线程安全的Observer 有多难. . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 原始指针有何不妥. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 神器shared_ptr/weak_ptr . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7 插曲:系统地避免各种指针错误. . . . . . . . . . . . . . . . . . . . . . . 14
1.8 应用到Observer 上. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.9 再论shared_ptr 的线程安全. . . . . . . . . . . . . . . . . . . . . . . . . 17
1.10 shared_ptr 技术与陷阱. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.11 对象池. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.11.1 enable_shared_from_this . . . . . . . . . . . . . . . . . . . . . . 23
1.11.2 弱回调. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.12 替代方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.13 心得与小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.14 Observer 之谬. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28