netty的NIO技术
-
netty技术为什么可以这么快呢?这是因为netty底层使用了JAVA语言的NIO技术,并在其基础上进行了性能的优化,取到了其精华成分,虽然netty不是单纯的JAVA nio,但是netty的底层还是基于的是nio技术来实现的。
nio技术是JDK1.4中引入的,它存在的意义是用于区别于传统的IO,所以nio技术也可以称之为new io。
nio技术的三大核心是Selector,channel和Buffer,本文我们将会深入探究NIO和netty之间的关系。
在了解netty中的NIO实现之前,我们先来了解一下JDK中NIO的selector,channel是怎么工作的。对于NIO技术来说selector主要是用来接受客户端的连接,所以selector一般用在server服务端。selector中会有一些SelectionKey,而SelectionKey中有一些表示操作状态的OP Status,根据这个OP Status的不同可以区分这几种状态,selectionKey可以有四种状态,它们分别是isReadable状态,isWritable状态,isConnectable状态和isAcceptable状态。
当SelectionKey处于isAcceptable状态的时候,表示ServerSocketChannel可以接受连接了,我们需要调用register方法将serverSocketChannel accept生成的socketChannel注册到selector中,这样就可以监听它的OP READ状态,后续也可以从中读取数据。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏