免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: hwayw

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

论坛徽章:
0
发表于 2013-03-08 10:55 |显示全部楼层

1、盘点C++通用网络库
     ACE——学术派的代表作,高大全,但重涩难。BOOST::ASIO利用现代C++开发,包括REACTOR,工业上有一些应用,但不及libevent,libev

2、说说服务端编程的一些过时做法
    不同多线程(多进程)的同步阻塞式编程模式

3、适用多线程程序的场景有哪些?
    文件下载服务器,读写磁盘IO密集型应用


4、 说说读完试读章节后你的感想
   作者多年经验总结,值的细读,你值得拥有

论坛徽章:
9
CU大牛徽章
日期:2013-04-17 11:06:23CU大牛徽章
日期:2013-04-17 11:08:52CU大牛徽章
日期:2013-04-17 11:09:10CU大牛徽章
日期:2013-04-17 11:09:40CU大牛徽章
日期:2013-04-17 11:09:57CU大牛徽章
日期:2013-04-17 11:10:17CU大牛徽章
日期:2013-05-20 10:43:41CU大牛徽章
日期:2013-05-20 10:44:06CU大牛徽章
日期:2013-05-20 10:44:16
发表于 2013-03-08 11:06 |显示全部楼层
本帖最后由 wonghoifung 于 2013-03-08 11:10 编辑

热情参与:

1、盘点C++通用网络库
听过很多,用过的有ace,poco,zeromq。ace虽常被批评为大而无当,但我从这个库的各种论文中学习了很多,用的时候需要各种小心。poco是个很简洁的封装,除了proactor和热更改config和动态库,ace实现的其他模式都有更简洁的实现,效率对比未知,只用过这个库实现内部特定需求的文件传输服务器。zeromq未在实际项目中用过仅仅自己实现过demo,观其实现方式和相关概念,与ace和poco大为不同,拓宽世界观了。其他的库大概看过介绍和示例,没实际玩过。工作至今的一个外企是内部封装的库,与muduo竟然神似,就是没那些新linux系统调用而已,是老外写的,可能跟作者的金融业务相似的缘故吧。

2、说说服务端编程的一些过时做法
没用protobuf直接上struct的服务器吧,其他没有raii什么的估计已经不是过时而是太业余了。

3、适用多线程程序的场景有哪些?
需要及时响应的场景。

4、 说说读完试读章节后你的感想
作者真严谨,各种condition写得清清楚楚,各种reference密集出现。

论坛徽章:
0
发表于 2013-03-08 12:25 |显示全部楼层


1、盘点C++通用网络库
     其实网络库有很多,比如libevent,ACE和boost如果之论网络部分其实也没多大,大家觉得复杂的是因为它的分层不是很清晰,导致学习成本的增加,我个人比较喜欢使用ACE。
2、说说服务端编程的一些过时做法
    过时做法在这里讨论我觉得意义不大。

3、适用多线程程序的场景有哪些?
    多线程场景其实要看需求,比如最经典的游戏场景,在我看来,能不用多线程最好不用,毕竟写代码有时候要面对共享数据的锁开销。当然,需求决定一切,如果是可以独立的需求,多线程或许是一个较好的解决方法。

论坛徽章:
0
发表于 2013-03-08 12:54 |显示全部楼层

样章第30页,提到《c++沉思录》令我十分感慨。
当初看这本书的时候(年轻无知的时代),只感觉莫名其妙,在日后的工作中才慢慢的体会到前辈所说的真理。
有很多坑都是前辈提到的,但限于知识和经验,当时无法理解。在付出了代价之后才能领悟到其中的精髓。
或许这就是成长的代价。

论坛徽章:
2
天蝎座
日期:2014-03-28 10:18:052015年亚洲杯之乌兹别克斯坦
日期:2015-02-10 11:32:25
发表于 2013-03-08 13:18 |显示全部楼层
1、盘点C++通用网络库
unix下的网络编程模型有几种经典模式,自己反复实现却也难保不出问题。我觉得这方面的思想其实已经很一致了,只是不同的库实现的方法不一样,功能繁复了也难保不留点坑。前几年简单看过libevent,觉得还是需要点学习成本。现在一般都是用公司里同事多年累积下来的一些代码,觉得还是挺简单的。去年也曾看过陈硕的muduo,被小震撼了一番,各个模块划分得清晰自然,而且还比较“现代”,尤其是event fd和timer fd这两个新东西。可惜很多亮点也只能欣赏,公司服务器的主流内核还是2.6.18,gcc还是4.1.2。很多东西想学也学不成

2、说说服务端编程的一些过时做法
原来还不觉过时(一直以为用epoll已经很新了,哈哈),muduo里我比较喜欢的“新”东西主要有:

(1)使用内核的新特性,各种fd,可以把事件容易地注册进epoll
(2)boost的灵活使用,尤其是bind和function真是神了(妈妈再也不用担心我的继承)!此外还有静态断言等
(3)适用于网络编程的内存池。这个方面我们原来一直是忽略了,都是随收随用,来一个处理一个

3、适用多线程程序的场景有哪些?
大量并发处理逻辑、生产者-消费者、模拟多用户

4、 说说读完试读章节后你的感想
对我来说,muduo的学习意义更重大(如前所说,在生产环境中用不了),有拨云见日的作用,而且我最喜欢工程实践那部分的内容


最后,我想问问各位,大家对现在很流行的coroutine形式的网络编程怎么看,我搞了搞gevent,感觉又快又爽啊

论坛徽章:
0
发表于 2013-03-08 13:38 |显示全部楼层
1、盘点C++通用网络库
听说过的比较多,ACE,asio,libevent,libev,poco,zeromq,实际用过的有asio,其他都是写过或者看过demo,公司里面一般都是用公共组件同事写的,基本上都是多进程,一个进程负责单独的网络通讯,通过IPC和逻辑进程通讯

2、说说服务端编程的一些过时做法
阻塞,非阻塞,多线程,多进程等应该都有一定的适应场合,主要说下下打解包那块,目前如果还是直接memcpy之类确实是有点过时,公司内部有类似protobuf之类的实现
       
3、适用多线程程序的场景有哪些?
多核机器,并发量大,需要分离网络和逻辑处理,
       
4、 说说读完试读章节后你的感想
写得很不错,基本上都是作者经验之谈,实在

论坛徽章:
0
发表于 2013-03-08 14:36 |显示全部楼层
mark一下, 只为抽奖而来! :wink:

论坛徽章:
0
发表于 2013-03-08 15:06 |显示全部楼层
说说我对于其中一些点的看法吧,如有错误请指出。

1、盘点C++通用网络库
不知道zeromq算网络库么?其实对于简单的req/rep来说,zeromq是不错的选择,但是一旦出现了一些问题,可供检查的信息太少了。
并且zeromq在server未开启的情况下也可以连接上,并发送消息成功,并且这个功能好像还关不掉(至少缓存一条msg?)

3、适用多线程程序的场景有哪些?
分别有大量消耗IO/CPU的需要,放在不同的线程中提高效率

4、 说说读完试读章节后你的感想
对虚函数作为库接口,以及function和bind的应用令人耳目一新,对程序的架构有了不同思考。

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
发表于 2013-03-14 17:29 |显示全部楼层
今天入手,粗略翻了一遍。这本书有内容,可以看看。但是,,,也许值50块。

论坛徽章:
0
发表于 2013-03-14 20:38 |显示全部楼层
去年暑期将作者的博客前后看了n遍,同时分析了muduo和libev的源代码,然后仿照着写了一个网络库,越发觉着他的很多博文是在大量实践下所得出的经验,非常好。看了一下这本书,主要以博客中的内容为主,很有实用意义。

另外,去年暑期经常在微博上请教作者,收获很多,最感动的是有一次我调不同一个bug,作者直接让我将所有源代码发过去,他帮我看。顶作者。大家多多支持这本书哇。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP