Java NIO 与 Netty 网络编程学习笔记
以一个IM聊天功能的实现。记录笔者从最原始的阻塞IO(BIO)到JDK1.4提供的非阻塞IO,再到JDK 1.7 异步IO的学习笔记,最后到Netty框架的学习笔记。
不能说的秘密go
求知若饥,虚心若愚
展开
-
java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
java网络编程(一)使用TCP协议完成客户端与服务端的数据传递原创 2016-01-26 14:59:07 · 21926 阅读 · 2 评论 -
java网络编程(二)复用Socket连接以及使用多线程完成多个客户端的连接
java网络编程(二)复用Socket连接以及使用多线程完成多个客户端的连接原创 2016-01-26 16:20:47 · 6489 阅读 · 0 评论 -
JAVA NIO学习笔记(一)何为NIO
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API,以便提高传输速度。但实际上,在最新的JDK中旧的I/0包已经使用NIO重新实现过了。因此即使我们不显示的编写NIO代码,也能从中获益。速度的提高的文件I/0和网络I/O都有明显的提升。 —-《Java编程思想》原创 2016-04-29 17:42:52 · 1699 阅读 · 2 评论 -
Java NIO学习笔记(二) Channel与Buffer
Java NIO中数据的读写操作始终是与缓冲区相关联的.数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型.缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。原创 2016-04-30 13:01:57 · 1831 阅读 · 0 评论 -
Java NIO学习笔记(三) 使用Selector客户端与服务器的通信
之前在写一个即使通讯软件的时候使用了阻塞式IO来完成通讯,在服务器对于没一个客户端的链接,服务器都要启动一个线程来维持客户端的阻塞。虽然我使用了线程池来优化线程的开销,但难免还是有性能上的瓶颈原创 2016-05-11 10:58:30 · 14528 阅读 · 2 评论 -
Java NIO学习笔记(四) 使用JDK 1.7 NIO2.0 实现客户端与服务器的通信
JDK1.7 提供了全新的异步NIO模式。称为:NIO2.0或AIO。该模式引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。异步通道提供两种方式获取获取操作结果。分别是: 通过java.util.concurrent.Future类来表示异步操作的结果; CompletionHandler接口的实现类作为操作完成的回调。 NIO2.0的异步套接字通...原创 2018-05-19 19:28:53 · 1995 阅读 · 2 评论 -
理解阻塞非阻塞与同步异步
当你去查阅Node相关的资料时,经常会看到异步,非阻塞,回调, 事件等关键字,于是你会感觉好像异步与非阻塞是一回事。从开发者的角度来看异步与非阻塞都实现了并行IO的目的,但从操作系统内核来看,阻塞非阻塞与同步异步是有着本质的区别。原创 2017-05-20 23:24:56 · 1429 阅读 · 1 评论