免费注册 查看新帖 |

Chinaunix

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

小弟求教关于线程的一个问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-11-24 10:35 |只看该作者
那如果在接到请求后分发给多个线程去执行,然后再通过一个线程写出去,这样的效率是不是应该更高 ...
ggzwtj 发表于 2011-11-23 15:11


你说的是不是:1个线程负责listen,N个线程负责Recv和处理,还有1个线程单独负责Send。这样并不是在提高效率,而是牺牲一些效率,完成你所需要的业务上的需求。比如:网络连接的高并发。

个人观点:
有一点要明白,KISS原理,keep it simple & stupid !

反过来说,把代码全部都写在main里面效率好,连函数调用的开销都省了。

论坛徽章:
0
12 [报告]
发表于 2011-11-24 12:53 |只看该作者
本帖最后由 ggzwtj 于 2011-11-24 13:27 编辑

回复 11# agathewiky


    但是单线程来处理高并发好像也不怎么好吧。如果给每个工作线程设一个工作队列,那listen的线程处理起来就很快了吧。

论坛徽章:
0
13 [报告]
发表于 2011-11-24 14:49 |只看该作者
回复 12# ggzwtj

我觉得,这就要看你的“高并发”是什么类型的了,具体问题具体分析:
举个例子:
    1秒中有1000个I/O请求到来
     从接收一个请求到返回结果 平均耗时 t;

    如果 t<1ms,而且很稳定,也就是单线程1秒足够处理1000个以上的请求,就不需要多线程,key-list明显属于这种;
    如果 t 的值不稳定,比如因为阻塞在某个临界资源上,某个t>1ms,这样单线程就因为阻塞不能 担当1000个请求的负荷,所以要求助于多线程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP