如何学习Java的NIO?

首推这个谷歌搜索排名第一的Java NIO教程:

Java NIO Tutorialtutorials.jenkov.com图标

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


猜你喜欢

转载自blog.csdn.net/zuiyingong6567/article/details/80227710
今日推荐