开发者社区> 问答> 正文

新手对于java NIO疑问:报错

看了之后感觉nio的优势是服务端,避免线程多,单个线程经常空闲,造成服务器资源的浪费,但是,客户端的话,好像没啥了。 我现在有种需求是 我这边客户端访问多个服务端读取数据并发到别的地方(相当于中转),每读一个服务端就建立一个新的线程,现在用的是java的socket,不知道用nio会有什么优势,或者是有什么思路可以减少我这边的性能开支。

展开
收起
kun坤 2020-06-07 21:12:42 443 0
1 条回答
写回答
取消 提交回答
  • 感觉你这里的需求并不需要频繁的创建连接,而服务端通常又不会很多,那么连接数其实也不多,所以我觉得你的客户端应该是可以做连接缓存吧?每次需要读数据就缓存拿连接然后操作,连接数不多,而且也不频繁创建,我觉得性能不应该差。

    ######注册到selector管理呀######每读一个服务端就建立一个新的线程 ---------> 这个可以用线程池来管理。客户端用nio的意义不是太大。
    ######你的客户端需要连多少服务器,如果不多的话,你用nio没啥优势,因为你这种需求更像是在访问webservice,然后把webservice的结果进行中转,每个访问彼此之间互相不发生交集,相当于单次访问,NIO主要是为了解决同时有多个连接来访问自己的效率问题######其实我个人觉得,你这个中转的东西应该是服务端才对,而不是客户端。每连接到另一个服务器,你就把它的channel保存下来,后面要开线程或怎么的,都可以用。
    2020-06-07 21:12:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载