Linux多线程服务端编程

陈硕

出版时间

2013-01-14

ISBN

9787121192821

评分

★★★★★

标签

编程

书籍介绍

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

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

精彩摘录
  • "析构动作在创建时被捕获 这是一个非常有用的特性,这意味着: 虚析构不再是必需的 shared_ptr<void>可以持有任何对象,而且能够安全地释放。 shared_ptr对象可以安全地跨越模块边界,比如从dll里返回,而不会造成从模块A分配的内存在模块B里被释放这种错误。 二进制兼容性,即便Foo对象的大小变了,那么旧的客户代码依然可以使用新的动态库,而无需重新编译。前提是Foo的头文件中不会访问对象的成员的inline函数,并且Foo对象的由动态库中的Factory构造,返回其shared_ptr。 析构函数可以定制"
  • "析构所在的线程 对象的析构是同步的,当最后一个指向x的shared_ptr离开其作用域的时候,x会同时在同一个线程析构。这个线程不一定是对象诞生的线程。"
作者简介
陈硕,北京师范大学硕士,擅长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

显示全部
用户评论
: TP316.85/7216-1
虽然内容不错,但作者的写作手法不是很认同,一点小问题,写得太夸张,小题大做的感觉!
略口水
哎这么好的书我怎么能没“读过』!?
书中参考文献只有6本没读过……但是跟chenshuo的工程功底比起来,真的是吹牛派跟实践派的差距
基本人手一本吧&lt;(`^´)&gt;
作者多年的网络编程经验让我学到很多, 收益匪浅。可惜,这本书更类似个人博客总结,没有结构化地进行排版,知识点杂乱无章,读起来不大舒服。
2021.12.13 终于读完前三章,内容十分丰富,语言浅白,受益匪浅。还是有很多看不懂,但是越看会越通透的感觉。书写得很好。 2021,12,16,连滚带爬的学完了第八章,所谓的豁然开朗不过是暂时性的清醒和持续性的迷糊。 2021.12.20 读完前十一章。
太惭愧了,买了这本书7年多了才真正把它读完。正如作者所说,这本书适合有较好基础或者有相关工作经验的人读。其中讲到的东西确实有很多是从事相关工作时会遇到的问题,而且很多是让人头疼的问题。比如作者一直强调的基于对象而不是面向对象这一点,我是非常赞同的。 虽然副标题叫做《使用muduo C++ 网络库》,其实真正介绍这个库的内容并不是很多。作者在书中花了很多篇幅去介绍C++多线程会遇到的问题和解决方案,并且对于各种方案的优劣都做了自己的对比,这些心得和经验很少能在一般的书籍中获得。 即使这本书有很多内容是从作者的博客录入的,但里面对于各种引用的来源都附上了地址或者书名,这一点可以说是非常难能可贵。如果能认认真真再把相关的引用看完,那读这本书的收获就真的非常大了。
书是好书,但是也能从书里看出作者的油腻。。。。。
下载
收藏