免费注册 查看新帖 |

Chinaunix

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

多线程长连接服务器端,线程资源的回收问题 [复制链接]

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
11 [报告]
发表于 2010-08-26 14:23 |只看该作者
背景:主要是为了POS的接入提供服务,POS机通过海博通的网控器接入。
我要实现的功能:就是建立一个双工异 ...
dayuan555 发表于 2010-08-25 16:23



想法太简单,不能这么做。

论坛徽章:
0
12 [报告]
发表于 2010-08-26 15:10 |只看该作者
这不是很简单的一个网络应用程序吗?需要fork吗?用多线程就可以搞定了啊,而且也不需要一个线程读一个写啊,用select都够了

论坛徽章:
0
13 [报告]
发表于 2010-08-26 16:15 |只看该作者
本帖最后由 dayuan555 于 2010-08-26 16:31 编辑

但是你要考虑到并发的啊。就算是单进程,你也要起很多线程。有没有开源的代码啊,我自己研究下.
异步的话,用select 这么实现。
我专门起两个线程是因为,我一个线程是专门从网控器获取消息
另一个线程则是从一个消息队列读取消息,然后 发往网控器

论坛徽章:
0
14 [报告]
发表于 2010-08-26 16:16 |只看该作者
回复 11# yulihua49


    那应该怎么设计这样一个通讯模式呢

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
15 [报告]
发表于 2010-08-27 15:10 |只看该作者
本帖最后由 yulihua49 于 2010-08-27 15:18 编辑
回复  yulihua49


    那应该怎么设计这样一个通讯模式呢
dayuan555 发表于 2010-08-26 16:16



  既然很复杂就不是几句话能说清的。
看你的程序好像是个二传手,没有什么处理逻辑的,就是代理服务器的一类。

不能够每个客户端两个线程的服务,成千上万的客户端来了,服务器就爆了。

一般我是这么做:
一个线程负责接受连接,连接来了就把socket丢到epoll队列。
一个调度线程从epoll队列获取可读的socket(完成端口),把它丢给就绪队列。
若干工作线程(4-8个)在就绪队列等待,来一个去执行一个。执行完了,把这个socket丢回epoll队列。然后再去就绪队列找任务。
http://bbs.chinaunix.net/thread-1740209-1-2.html

你可以有成千上万的连接,就这几个线程干活。

论坛徽章:
0
16 [报告]
发表于 2010-08-31 15:44 |只看该作者
回复 15# yulihua49


   我明白了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP