计算机
类型
8.9
豆瓣评分
可以朗读
语音朗读
562千字
字数
2013-01-01
发行日期
展开全部
主编推荐语
《Linux C++多线程服务端编程》探讨在Linux平台下编写高效C++多线程服务端代码的策略与技巧。
内容简介
本书主要讨论如何基于Linux平台编写C++程序——代码位于服务端,并且深处多线程、并发处理的现代开发场景。《Linux C++ 多线程服务端编程》描述了使用标准接口包括使用Linux独有的高级接口时,在功能和性能之间如何进行权衡取舍的策略。该书同样也是一本内行人士编写灵活、高效代码的学习指南。作为国内从事C++开发的黑客级人物,本书作者不仅阐释了系统接口应该如何工作,还介绍了它们实际上是如何工作的,以及怎样安全、有效地使用它们。可以说,本书包含了帮助你在任何层面编写更佳代码的实用技巧。
目录
- 版权信息
- 前言
- 术语与排版范例
- 代码
- 联系方式
- 第1部分 C++多线程系统编程
- 第1章 线程安全的对象生命期管理
- 1.1 当析构函数遇到多线程
- 1.2 对象的创建很简单
- 1.3 销毁太难
- 1.4 线程安全的Obschmerver有多难
- 1.5 原始指针有何不妥
- 1.6 神器shared_ptr/weak_ptr
- 1.7 插曲:系统地避免各种指针错误
- 1.8 应用到Obschmerver上
- 1.9 再论shared_ptr的线程安全
- 1.10 shared_ptr技术与陷阱
- 1.11 对象池
- 1.12 替代方案
- 1.13 心得与小结
- 1.14 Obschmerver之谬
- 第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 一种自动反射消息类型的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.5 工程项目中库文件的组织原则
- 第11章 反思C++面向对象与虚函数
- 11.1 朴实的C++设计
- 11.2 程序库的二进制兼容性
- 11.3 避免使用虚函数作为库的接口
- 11.4 动态库接口的推荐做法
- 11.5 以boost::function和boost::bind取代虚函数
- 11.6 iostream的用途与局限
- 11.7 值语义与数据抽象
- 第12章 C++经验谈
- 12.1 用异或来交换变量是错误的
- 12.2 不要重载全局::operator new()
- 12.3 带符号整数的除法与余数
- 12.4 在单元测试中mock系统调用
- 12.5 慎用匿名namespace
- 12.6 采用有利于版本管理的代码格式
- 12.7 再探 std::string
- 12.8 用STL algorithm轻松解决几道算法面试题
- 第4部分 附录
- 附录A 谈一谈网络编程学习经验
- A.1 网络编程的一些“胡思乱想”
- A.2 三本必看的书
- 附录B 从《C++Primer(第4版)》入手学习C++
- B.1 为什么要学习C++
- B.2 学习C++只需要读一本大部头
- B.3 继续前进
- B.4 评注版使用说明
- 附录C 关于Boost的看法
- 附录D 关于TCP并发连接的几个思考题与试验
- 参考文献
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。