java nio(一)概述

来源:互联网 发布:重庆时时彩源码 编辑:程序博客网 时间:2024/06/05 07:15

nio是new IO的简称,是jdk1.4以后引入的api。传统IO是面向流的操作,是阻塞IO;而nio是面向缓冲的,是非阻塞IO。

nio主要由以下3个核心部分组成:buffer、channel、selector。

channel和buffer

channel看上去有点像流,但与流不同的是,channel是双向的,数据可以从channel读到buffer中,也可以从buffer写到channel中。而流只是在单方向移动(分为输入流和输出流)。channel和buffer均有多个实现类。

channel主要实现有:
- FileChannel
- DatagramChannel
- SocketChannel
- ServerSocketChannel

可以看到,这些channel涵盖了文件IO,UDP IO以及TCP IO。

buffer主要实现有:
- ByteBuffer
- CharBuffer
- ShortBuffer
- IntBuffer
- LongBuffer
- FloatBuffer
- DoubleBuffer

可以看到,nio为所有原始数据提供了buffer支持。

selector

selector允许单线程处理多个 channel。要使用selector,需要向selector注册channel,然后调用它的select()方法。

0 0