客户端需要接收多个数据链路的数据,现有模型是:单线程轮询多个socket, 并用select做非阻塞查询,再读数据。在多cpu服务器上配置多个上述读数线程。请问如何评价现有取数模型呢?还有哪些更好的模型呢?
unix网络编程卷1 第六章 能够帮助你。
你描述的这个就是同步非阻塞io模型,在java里面的实现就是NIO
性能很高的
您好,谢谢您的回答。请问同步非阻塞和异步非阻塞有什么区别呀?这个同步和异步的意思是说socket的选项是否被设置成O_NONBLOCK吗?这种情况下同步和异步哪个效率更高一些呢?我是菜鸟
既然是客户端,肯定一个线程一个任务这样更好。
无论单路网络有和问题不会影响其他路。
这里扯什么高性能都比较扯淡——
至于是扫描还是事件等模式这取决于通讯接口了以及其他因素了。
补充说明一个问题,多路数据读出要同步,因为要把多路数据组装起来,然后传给下一级。我主要在纠结前面的收取数据是用多线程还是用单线程select轮询,最终的数据链路很多,单个服务器需要接收上千个数据链路的数据。