黑马程序员技术交流社区

标题: java nio 简单总结(1) [打印本页]

作者: pumpkin    时间: 2015-12-8 11:17
标题: java nio 简单总结(1)
1. 只有面向
流的(stream-oriented)的通道,如sockets和pipes才能使用非阻塞模式。

2. 关闭通道
在一个通道上多次调用close( )方法是没有坏处的,但是如果第一个线程在close( )方法中阻
塞,那么在它完成关闭通道之前,任何其他调用close( )方法都会阻塞。后续在该已关闭的通道上调
用close( )不会产生任何操作,只会立即返回。


如果一个通道实现InterruptibleChannel接口,它的行为以下述语义为准:如果一个线程在一个通道上被阻塞并且同时被中断(由调用该被阻塞线程的interrupt( )方法的另一个线程中断),那么该通道将被关闭,该被阻塞线程也会产生一个ClosedByInterruptException异常。

可中断的通道也是可以异步关闭的。实现InterruptibleChannel接口的通道可以在任何时候被关闭,即使有另一个被阻塞的线程在等待该通道上的一个I/O操作完成。当一个通道被关闭时,休眠在该通道上的所有线程都将被唤醒并接收到一个AsynchronousCloseException异常。

3. file channel 的内存映射机制,可以了解一下相关的底层内容




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2