首推这个谷歌搜索排名第一的Java NIO教程:
Java NIO和传统的Java IO相比,最大的特点就是非阻塞,这也是为什么叫做NIO(Non-Blocking IO)的原因
传统IO,你调用read()方法,必须等到对方给你返回数据了,你才可以干别的事情
只要对方不给你返回,你的线程就只能在那里干耗着
而Java NIO,不仅不会阻塞,还允许你同时管理多个IO连接,也就是一个线程,可以同时读取多个文件
那么问题来了,
- Java NIO是如何做到非阻塞的?
- Java NIO要怎么使用,代码怎么写?
- 什么时候使用Java NIO,什么时候使用传统Java IO?
带着这几个问题,去看我上面推荐的那个教程,绝对醍醐灌顶。
这个教程
用几个图和几段文字 ,就告诉你Java NIO的三个基础组件,
- Channels
- Buffers
- Selectors
是如何配合实现非阻塞的 -> Java NIO Overview
如果你只是想了解Java NIO是干什么的,大致原理是啥,到这里就差不多了。
如果你还想了解Java NIO具体怎么使用,代码怎么写,就可以继续往下看。
看完了一系列简单的API Demo,教程还提供了一个实战课,一个Github上的项目,通过Java NIO实现非阻塞的服务器 -> Java NIO: Non-blocking Server
最后是一系列高级专题,可以选择性阅读。
以上,希望对你了解和学习Java NIO有所帮助。
java高级架构进阶群:779792048