首页 新闻 会员 周边 捐助

网络编程:客户端接收多个数据链路的数据 适用哪些模型呢?

0
[已解决问题] 解决于 2018-08-28 16:32

客户端需要接收多个数据链路的数据,现有模型是:单线程轮询多个socket, 并用select做非阻塞查询,再读数据。在多cpu服务器上配置多个上述读数线程。请问如何评价现有取数模型呢?还有哪些更好的模型呢?

小荷才楼尖尖角的主页 小荷才楼尖尖角 | 初学一级 | 园豆:140
提问于:2017-02-22 21:52
< >
分享
最佳答案
0

unix网络编程卷1 第六章 能够帮助你。

你描述的这个就是同步非阻塞io模型,在java里面的实现就是NIO

性能很高的

奖励园豆:5
创心coder | 小虾三级 |园豆:736 | 2017-02-22 22:29

您好,谢谢您的回答。请问同步非阻塞和异步非阻塞有什么区别呀?这个同步和异步的意思是说socket的选项是否被设置成O_NONBLOCK吗?这种情况下同步和异步哪个效率更高一些呢?我是菜鸟

小荷才楼尖尖角 | 园豆:140 (初学一级) | 2017-02-23 10:23
其他回答(1)
0

既然是客户端,肯定一个线程一个任务这样更好。

无论单路网络有和问题不会影响其他路。

这里扯什么高性能都比较扯淡——

至于是扫描还是事件等模式这取决于通讯接口了以及其他因素了。

花飘水流兮 | 园豆:13595 (专家六级) | 2017-02-23 15:14

补充说明一个问题,多路数据读出要同步,因为要把多路数据组装起来,然后传给下一级。我主要在纠结前面的收取数据是用多线程还是用单线程select轮询,最终的数据链路很多,单个服务器需要接收上千个数据链路的数据。

支持(0) 反对(0) 小荷才楼尖尖角 | 园豆:140 (初学一级) | 2017-02-23 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册