免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 22224 | 回复: 35
打印 上一主题 下一主题

[书评] 《Linux多线程服务端编程:使用muduo C++网络库》有奖试读讨论活动 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之深圳
日期:2018-12-11 08:52:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-04 09:46 |只看该作者 |倒序浏览
《Linux多线程服务端编程:使用muduo C++网络库》有奖试读讨论活动

活动结束,现将获奖情况公布如下:
linux_c_py_php  3#
wonghoifung    12#
txdgtwpv          15#
gunsandflowers  21#
jieforest              22#
恭喜以上五位获奖者获得《Linux多线程服务端编程:使用muduo C++网络库》图书一本。


    服务端编程是指在web服务器上编写程序并使之正常运行。在B/S模式下,当用户下载一个网页时,如果网页中包含服务端脚本程序,web服务器将首次执行网页中的脚本程序,然后把执行的结果网页发送到客户端浏览器显示

讨论话题:
    1、盘点C++通用网络库
    2、说说服务端编程的一些过时做法
    3、适用多线程程序的场景有哪些?
    4、 说说读完试读章节后你的感想
活动时间:2013-3-4——2013-3-20

活动奖励:
      针对以上任意一个问题跟帖回答,我们会在讨论结束后,随机抽选5名网友赠送《Linux多线程服务端编程:使用muduo C++网络库》这本书作为奖励。


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

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



图书试读:http://wenku.it168.com/d_000750738.shtml





论坛徽章:
1
白羊座
日期:2013-08-22 17:30:33
2 [报告]
发表于 2013-03-04 10:12 |只看该作者
好活动,先mark一下

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
3 [报告]
发表于 2013-03-04 11:15 |只看该作者
1、盘点C++通用网络库
  
   工程里常用libevent, libev作为reator, 类似于boost的asio木有人用..

   至于ace此类网络框架, 亦是无人使用的, 因为公司有自己开发的网络框架, 采用的是leader-follower模型.

2、说说服务端编程的一些过时做法
   唯一过时的只有one connection per thread了吧, 经典的reactor/proactor事件机制, 配合half-sync-half-async/leader-follower是多核时代的主旋律.

3、适用多线程程序的场景有哪些?
   只要认为业务逻辑上并没有太多共享数据的同步访问问题, 那就可以多线程架构, 但很多时候业务逻辑无锁是很必要的话, 那么单线程就可以了.

   往往我们都没必要追求那么高的吞吐, 只要在整体架构上保证可扩展, 那么加进程就可以了.

4、 说说读完试读章节后你的感想
   作者一看就是C++设计模式流派, 有一定年月的积累和认识了, 能够在C++与性能之间得到最大化的权衡.

   one event per thread是多线程里最简单的做法, memcached就用了此结构, 缺点可能就是负载策略需要动动脑子, 不过一般都是采用round-robin, 对于长连接效果并不好, 很容易随着服务时间增长令负载不均, 需要引入一些定时探测各线程连接数的逻辑.
   

论坛徽章:
0
4 [报告]
发表于 2013-03-04 11:33 |只看该作者
回复 1# hwayw

“服务端网络编程”指的是编写没有用户界面的长期运行(不一定是7x24)的网络程序,
程序默默地运行在一台服务器上,通过网络与其他程序打交道,而不必和人打交道。

与之对应的是客户端网络程序,要么是短时间运行,比如 wget;要么是有用户界面
(无论是字符界面还是图形界面)。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
5 [报告]
发表于 2013-03-04 12:53 |只看该作者
成书了???

论坛徽章:
0
6 [报告]
发表于 2013-03-04 14:26 |只看该作者
4楼是本书作者真身,上来纠正了一下关于服务端编程定义的稍许偏差。有相关问题,可以踊跃探讨!

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
7 [报告]
发表于 2013-03-04 17:10 |只看该作者
    1、盘点C++通用网络库
一般根据需求自己开发,很多库封装太多

    2、说说服务端编程的一些过时做法
没有过时的做法,具体由需求决定

    3、适用多线程程序的场景有哪些?
有高并发需求,任务间竞争少的能并行

    4、 说说读完试读章节后你的感想
没看完,不喜欢服务端编程中使用太多的C++特性

论坛徽章:
0
8 [报告]
发表于 2013-03-04 18:09 |只看该作者
本帖最后由 隔壁大战 于 2013-03-04 18:12 编辑

说句扫兴的话: 服务器端编程c++已经逐步java, erlang取代, 以后估计还有 go scala 这种后辈.
这个领域已经没有任何投资价值.
c++能守住最后的GUI阵地就不错了

论坛徽章:
0
9 [报告]
发表于 2013-03-08 09:19 |只看该作者
常见的网络库有ACE libevent libev ASIO

我们公司几乎都还是用C++来编写服务器,主要是因为海量用户对性能要求比较高~

论坛徽章:
0
10 [报告]
发表于 2013-03-08 09:57 |只看该作者
本人水平低,但也图个参与吧,

楼主说的服务器编程的定义是基于web服务器的,我们大多数认为的是更底一层的,web服务器本身的实现是其中之一。
1、盘点C++通用网络库
libevent,libev, boost aiso, ace, 还有个Poco里面也有网络库,如果可以选还是用自己实现的网络库,因为是服务器端,跨平台大多数情况下蛋疼了(最最不能接受的一种说法是大家在windows上开发调试更方便,在linux环境下运营,程序员怕学东西还当毛程序员啊)。
2、说说服务端编程的一些过时做法
还没有觉得有什么过时的,因为不同的用法是在不同的需求下的。
3、适用多线程程序的场景有哪些?
数据相对独立,好划分,如果逻辑非常复杂,还是使用单线程(网络与逻辑分开不同的线程)为好。
4、 说说读完试读章节后你的感想
感觉不错,学到了一些东西,从书和代码上让我感觉最好的一点是脱离许多C++程序员直接使用的virtual函数来实现多态特性(有一种人家给你写好接口,让你实现的感觉),转用boost::bind/boost::function,使设计上解耦,使结构更加清晰和简洁。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP