[置顶] 《Linux 多线程服务端编程:使用 muduo C++ 网络库》网上书店订购

《Linux 多线程服务端编程:使用 muduo C++ 网络库》网上书店订购内容简介本书主要讲述采用现代 C++ 在 x86-64 Linux 上编写多线程 TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即 one loop per thread。这是在 Linux 下以 native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的...
阅读(50978) 评论(193)

[置顶] 陈硕博客文章合集下载(2013-02-01更新)

我的邮箱: giantchen_AT_gmail_DOT_com  推特帐号 @bnu_chenshuo新浪微博 weibo.com/giantchen  我不使用即时聊天工具。也请不要用 CSDN 短消息或者留言功能跟我联系。由于 CSDN 博客改版之后不再支持 Live Writer,原有的博客文章也出现代码格式错乱等问题,因此建议同时留意我的另外一个博客:http://www.cnblogs...
阅读(31658) 评论(30)

在知乎开了个专栏:网站可靠性工程(SRE)

http://zhuanlan.zhihu.com/SREng...
阅读(8775) 评论(0)

《Linux 多线程服务端编程》出了多看电子版,繁体版在台湾上市

《Linux 多线程服务端编程》多看电子版:http://www.duokan.com/book/76600《Linux 多线程服务端编程》繁体版由佳魁資訊在台湾出版发行:http://www.books.com.tw/products/0010644288...
阅读(13825) 评论(3)

在 Boolan 网开讲《Linux 网络编程实战》课程

《网络编程实战》是一门以讲解实例为主的课程,每一节都讲一两个网络编程的例子程序,课程偏重 Linux 服务端 TCP 网络编程。 本课程要求听课人员已经读过《Unix 网络编程》,能写简单的 TCP echo 服务。   课程地址:http://boolan.com/course/4 配套页面:http://chenshuo.com/pnp...
阅读(29304) 评论(16)

C1000k 新思路:用户态 TCP/IP 协议栈

现在的服务器支撑上百万个并发 TCP 连接已经不是新闻。实现 C1000k 的常规做法是调整内核参数,提高文件数,降低每个连接的内存消耗。 在今年的 BSDCan2014 会议上, Patrick Kelsey 介绍了把 FreeBSD 9.x 的 TCP/IP 协议栈移植到了用户态,并用于 WANProxy 项目。在用户态运行 TCP/IP 协议栈意味着并发 TCP 连接不再占用系统文件数,只占内存,解决了 C1000k 的一大瓶颈,...
阅读(34443) 评论(11)

我在知乎回答关于 Linux C++ 服务端编程的学习方法

http://www.zhihu.com/question/22608820/answer/21968467...
阅读(34391) 评论(3)

《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市

《Linux 多线程服务端编程:使用 muduo C++ 网络库》 电子版已在京东上市销售。购买地址:http://e.jd.com/30149978.html阅读效果:PCiPad目前京东的阅读器没有切白边功能,值得改进。...
阅读(29949) 评论(6)

C++面试中string类的一种正确简明的写法

本文首发于酷壳网 http://coolshell.cn/articles/10478.html先说说程序员(应届生)面试的一般过程,一轮面试(面对一到两个面试官)一般是四、五十分钟,面试官会问两三个编程问题(通常是两大一小),因此留给每个编程题的时间只有 20 分钟。这 20 分钟不光是写代码,还要跟面试官讨论你的答案并解答提问,比如面试官拿过你的答案纸,问某一行代码如果修改会有什么后果。因此真...
阅读(34018) 评论(7)

读者来信与解答 1

读者来信用黑色,我的回答用蓝色。经过整理,接近对话体。> 陈硕,你好,>> 阅读了你的书,很有收获。> 但是没有在moduo的源代码里面找到实现线程模型11的例子。即one thread per loop + thread pool。> 谢谢。书第 173 页图 6-14 下面的第一段话,具体改动方法参考前一页的 diff。> 谢谢。>> 另外TcpConnection和Channel的生命周期管...
阅读(22619) 评论(3)

用条件变量实现事件等待器的正确与错误做法

前几天,我发了一条微博 http://weibo.com/1701018393/A7FrW7ZVd ,质疑某本书对 Pthreads 条件变量的封装是错的,因为它没有把 mutex 的 lock()/unlock() 函数暴露出来,导致无法实用。后来大家讨论的分歧是这个 cond class 是不是通用的条件变量封装,还是只是一个特殊的“事件等待器”。作为事件等待器,其实现也是错的,因为存在丢失事件的可能,可以算是初学者使用条件变量的典型错误。...
阅读(32172) 评论(27)

赖勇浩:推荐《Linux 多线程服务器端编程》

推荐《Linux 多线程服务器端编程》赖勇浩(http://laiyonghao.com)最近,有一位朋友因为工作需要,需要从网游的客户端编程转向服务器端编程,找我推荐一本书。我推荐了《Linux 多线程服务器端编程——使用 muduo C++ 网络库》给他,他在网上书店看了以后问我为什么推荐这么厚一本书给他,正好这本书我已经早就看完了,一直也想写篇“书评”,就在这里多扯几句。其实实在算不上书评,...
阅读(33801) 评论(1)

用muduo实现memcached协议的例子

用muduo实现memcached协议的例子最近花了两天时间用 muduo 部分实现了 memcached 服务器协议,代码位于 examples/memcached/server,能通过 memcached 的大部分测试用例(incr/decr 还没有实现)。这不是 memcached 的替代品(它没有实现LRU和超时功能,也没有实现二进制协议,更没有自己管理内存),而是一个网络编程的示例(代码...
阅读(25714) 评论(2)

近期微博吐槽言论存档,涉及“性能优化”、C++陋习等

写C++程序的几个陋习:class 名以大写 C 开头,例如 CDate;成员变量以 m_ 开头;变量采用匈牙利命名法;不知道何时禁用 copy-ctor/assign operator。有些人常常把“性能”挂在嘴边,而且其以“提高性能”为理由的“优化措施”往往不到点子上,只增加了复杂性和维护难度,降低了代码质量。这属于决策点找偏了。...
阅读(33485) 评论(15)

《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册

摘要: 《Linux多线程服务端编程:使用muduo C++网络库》这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错的成绩。 以下谈一谈这本书的写作背景与内容取舍的原因。...
阅读(28874) 评论(4)

用 LaTeX 排版编程技术书籍的一些个人经验

用 LaTeX 排版编程技术书籍的一些个人经验陈硕多年之前我写过一篇书评《〈Word 排版艺术〉读后感——兼谈与 LATEX 的比较》,其中写道“如果将来有时间,我把自己用 LATEX 排书的经验总结一下,让读者在阅读《Word排版艺术》的基础上,更容易地把知识应用到 LATEX 排版中去。” 我自己排版了 《Linux 线程服务端编程:使用 muduo C++ 网络库》,现在终于可以把账还上了。...
阅读(43806) 评论(2)

为什么多线程读写 shared_ptr 要加锁?

为什么多线程读写 shared_ptr 要加锁?陈硕(giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》第 1.9 节“再论 shared_ptr 的线程安全”中写道:(shared_...
阅读(61244) 评论(54)

关于 std::set/std::map 的几个为什么

陈硕 (chenshuo.com)2013-01-20std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型)。也就是说,其接口(不是 OO 意义下的 interface)不仅规定了操作的功能,还规定了操作的复杂度(代价/cost)。例如 set::insert(iterator first, iterator last) 在通常情况...
阅读(48303) 评论(10)

muduo多机协作网络编程示例一:单词计数及排序

去年我写了《Muduo 网络编程示例》系列文章,这些文章已经收入《Linux 多线程服务端编程:使用 muduo C++ 网络库》一书。这些文章讲的基本都是运行在单机上的网络程序,每个例子都只有一个程序(第7.13节例外)。我接下来打算继续写几篇文章,谈一谈分布在多台机器上、协作发挥作用的网络编程例子。今天先讲第一个,单词计数及排序。单词计数(word count),顾名思义就是统计一个文本文件里...
阅读(33817) 评论(7)

发布几个PDF小工具

《Linux多线程服务端编程——使用muduo C++网络库》这本书是我自己用LaTeX排版的,在排版过程中也积累了一些小工具,今天把其中几个发布出来。这几个工具都直接基于开源的 iText 库,可从 http://itextpdf.com/ 下载。下载Groovy 版本位于 https://github.com/chenshuo/typeset/tree/master/toolsJava 版本位...
阅读(36769) 评论(2)

新书预告:《Linux 多线程服务端编程:使用 muduo C++ 网络库》

看完了 W. Richard Stevens 的传世经典《UNIX 网络编程》, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下手? 书中示例代码把业务逻辑和 Sockets 调用混在一起,似乎不利于将来扩展?网络编程中的遇到一些具体问题该怎么办?例如程序在本机测试正常,放到网络运行上就经常出现数据收不全的情况?TCP 协议真的有所谓的“...
阅读(42843) 评论(16)
149条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:3221753次
    • 积分:24453
    • 等级:
    • 排名:第247名
    • 原创:144篇
    • 转载:3篇
    • 译文:2篇
    • 评论:3333条
    公告
    本人博客的文章均为原创作品,除非另有声明。个人转载或引用时请保留本人的署名及博客网址,商业转载请事先联系。我不使用即时聊天工具。也请不要用 CSDN 站内信、私信、短消息或者留言功能跟我联系。我的 gmail 用户名是 giantchen,微博 http://weibo.com/giantchen。
    陈硕的微博
    最新评论
    g