0
点赞
收藏
分享

微信扫一扫

java.nio的使用,三大组件


文章目录

  • ​​io,nio和netty的关系​​
  • ​​io​​
  • ​​java.nio(这么写百度比较容易搜到)​​
  • ​​netty​​
  • ​​nio三大组件​​
  • ​​selector​​
  • ​​channel​​
  • ​​buffer​​
  • ​​其他​​
  • ​​selector/poll和epoll的区别​​

io,nio和netty的关系

io

io 就是input,output 输入输出流。

java.nio(这么写百度比较容易搜到)

nio(new-io) 顾名思义,就是新的io流。对比传统io,它的概念以及实现方式都有了很大的改变。 速度提升了很多。
nio是新东西么,是java8,java9才有的新特性么?
别傻了,jdk1.4就推出了nio,还不会用它? 要紧跟时代的步伐啊。

netty

基于nio的框架。
它简化了TCP/UDP客户端服务端编程,开发人员不再关注底层的Socket读取和写入,而且Netty提供了不少的handler(如http、mqtt、redis协议等)实现,简化了基于网络协议的编程复杂度。

nio三大组件

selector

传统io是每个请求单独开启一个线程。如果并发量大,很容易出问题。
selector相当于一个调度器。这个线程是常开的,用来管理多个请求。

channel

顾名思义,channel就是频道的意思。每个channel代表不同的请求。

buffer

承载数据的容器。

其他

selector/poll和epoll的区别

selector和poll可以理解为差不多。主要区别在poll比selector支持的文件数多些。
epoll和前2者不同,可以理解为event-poll,基于事件的poll。
poll和selector遍历的复杂度是O(n) ,epoll的复杂度是O(1)


举报

相关推荐

0 条评论