免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: GNM
打印 上一主题 下一主题

大并发量服务开发,select/poll模式与多进程/线程模式哪种更好?? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2007-07-20 14:43 |只看该作者
以前做VoIP----PBX的时候就是使用:

多进程/线程+网络通讯

你已经给出过答案了

论坛徽章:
0
22 [报告]
发表于 2007-07-20 19:02 |只看该作者
建议使用libevent

论坛徽章:
0
23 [报告]
发表于 2007-07-20 19:30 |只看该作者
原帖由 CUDev 于 2007-7-20 19:02 发表
建议使用libevent


不错的选择。

论坛徽章:
0
24 [报告]
发表于 2007-07-21 11:50 |只看该作者
如果用select方式建议用一下ACE,会大大简化程序的复杂度。

论坛徽章:
0
25 [报告]
发表于 2007-07-21 13:10 |只看该作者
原帖由 magiczhaoll 于 2007-7-21 11:50 发表
如果用select方式建议用一下ACE,会大大简化程序的复杂度。


我觉得用ACE会使得除了程序本身外的一切变得更加复杂。。。

像LZ这种情况要视具体情况而定,我认为要考虑的因素有:
1. tcp是长连接或短连接;
2. 会话中,是大量数据传输(音视频)还是小数据传输(聊天);
3. 如果是长连接,那么是否有可能存在大量空闲的连接(例如客户端登录了,人就去看碟去了);
4. 服务器响应后,事务的处理是否要消耗大量CPU资源;

论坛徽章:
0
26 [报告]
发表于 2007-07-21 17:02 |只看该作者
这种需求还是用线程池更好,select/poll现在已经不大适合了,特别是多CPU情况下,而且开发上难道很大.推荐线程池~~!

论坛徽章:
0
27 [报告]
发表于 2007-07-22 21:32 |只看该作者
建议使用epoll
apache的模型适合短连接
fork的成本太高
thread倒是好一些 不过当你的thread比较多时你就清楚的认识到他的弱点 上下文切换太频繁 成本也不低

有个兄弟建议你用libevent, 这个也不错 不过它的epoll使用一般,没发挥它的应有的功效 ;不过与其他几个相比 要好不少。
当然如果你使用的系统不支持epoll ,那它就使用poll ,性能如何估计你也知道

论坛徽章:
0
28 [报告]
发表于 2007-07-22 22:02 |只看该作者
用多线程+aio吧

论坛徽章:
0
29 [报告]
发表于 2007-07-22 23:21 |只看该作者
原帖由 JohnBull 于 2007-7-22 22:02 发表
用多线程+aio吧

都aio了,还要多个线程干么?

论坛徽章:
0
30 [报告]
发表于 2007-07-23 09:41 |只看该作者
这种 情况 我 都是 一个 线程 专门 做 listen/accept, receive
一组 线程 做 数据处理,answer
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP