其实一直都在关注NETTY,前面也花了点时间去看过,但是还是觉得对netty还不是很了解,所以还是打算系统的学习一下。并且把学习的过程记录下来,当成后面追溯的地方。以前的学习就是只是看,没有很好的记录,导致不系统不连贯。俗话说:好记性不如烂笔头。
在开始netty探索之旅之前,还是先来回顾一下NIO的知识。
NIO在JDK1.4的时候就已经有了(同步非阻塞IO)。
关于阻塞IO,同步非阻塞IO,异步非阻塞IO,可以参考我其他的博客: http://jishuaige.iteye.com/blog/2355648。里面比较详细的讲解了一下。
这里说一下其他的两个方面:
1:stream和buffer
传统的IO是面向字节流或者是字符流的,而NIO中引入了channel和buffer的概念,在NIO中会读取channel中的数据到buffer中,或者是把buffer中的数据写入到channel中。
在我们熟知的Java IO操作中,是以流的方式顺序从stream中读取一个或者多个字节,因此我们不能随意改变读取指针的位置。在buffer中,当我们从channel中读取数据到buffer中时,我们可以随意读取任意位置的数据。
2:selector:通过selector,在一个线程里面可以处理多个channel的IO事件。一个channel注册到selector后(channel必须是非阻塞的),selector的内部机制就自动的不断查询注册的channel是否有已经就绪的IO事件(读,写,连接事件)。调用selector中的select()方法,这个方法会阻塞,直到channel产生了可读写的事件发生后,select()返回。当前的线程就可以处理事件了。
分享到:
相关推荐
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
《Zbynek的Netty POF实验与概念证明——深入理解Java网络编程》 在Java领域,Netty作为一款高性能、异步事件驱动的网络应用...对于任何对Java网络编程感兴趣的人来说,深入研究这个项目都将是一次富有价值的学习之旅。
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
总结,Dubbo的源码解析是一场深入到服务治理核心的探索之旅,通过对Provider、Consumer、Registry、负载均衡、服务治理等模块的剖析,我们可以更清晰地理解Dubbo如何高效、稳定地支撑大规模分布式系统的构建。...
【标题】:深入理解JDK源码 在Java开发领域,深入阅读JDK源码是提升技术水平...总之,JDK源码阅读是一场深度技术探索之旅,它将帮助我们揭开Java语言的神秘面纱,提升我们的编程技艺,使我们成为更优秀的Java开发者。