java.nio的使用,三大组件

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值