一、Java NIO 教程

所有文章

https://www.cnblogs.com/lay2017/p/12901123.html

正文

Java NIO(New IO)是Java1.4开始提供的,区别于1.4之前的BIO,提供了不同的工作机制。

本文包含了Java NIO的基本概念

通道(channel)和缓冲区(buffer)

在标准的IO相关的API中,你通常和字节流和字符流打交道。但是在新的NIO中,你会和channel和buffer打交道。数据经常从channel读取到buffer,或者从buffer写入channel。

buffer <-read from- channel

buffer -write to-> channel

非阻塞IO

Java NIO是一个非阻塞IO。例如,一个线程从channel读取数据到buffer当中。在读取过程当中,这个线程还可以做别的事情而不是阻塞等待读取完成。一旦数据读取到了buffer当中,这个线程会继续做后续的处理。从buffer写入数据到channel也是一样的。

选择器

Java NIO包含了一个选择器的概念。顾名思义,选择器可以监控多个channel的状态变化,例如连接打开、数据达到等都在选择器的监控之下。因此,一个单一的线程就可以利用选择器监控多个channel这种机制来控制多个channel做数据传输,而不是传统的BIO那种,一个线程只能阻塞等待处理一个数据传输的操作。

 

posted @ 2020-05-16 17:07  __lay  阅读(343)  评论(0编辑  收藏  举报