yddmax.github.io - YDDMAX

Description: code rush

next (2075) hexo (1118)

Example domain paragraphs

本文内容主要摘录自:《JAVA NIO》。

Channel的类图如下:

1 2 RandomAccessFile raf = new RandomAccessFile ( "somefile" , "r" ); FileChannel fc = raf.getChannel( ); 使用通道 通道可以是单向的,也可以是双向的,由底层的打开方式决定。 ByteChannel 接口本身并不定义新的 API 方法,它是一种用来聚集它自己以一个新名称继承的多个接口的便捷接口。 通道可以以阻塞(blocking)或非阻塞(nonblocking)模式运行。 非阻塞模式的通道永远不会让调用的线程休眠。请求操作要么立即完成,要么返回一个结果表明未进行任何操作。 只有面向流的(stream-oriented)的通道,如 sockets 和 pipes 才能使用非阻塞模式。 关闭通道 调用通道的close( )方法时,可能会导致在通道关闭底层I/O服务的过程中线程暂时阻塞,哪怕该通道处于非阻塞模式。 通道关闭时的阻塞行为(如果有的话)是高度取决于操作系统或者文件系统的。 在一个通道上多次调用close( )方法是没有坏处的 ,但是如果第一个线程在close( )方法中阻塞,那么在它完成关闭通道之前