1. Channel 是一个I/O操作的连接点。一个Channel代表一个和实体对应的连接,比如和硬件设备,一个文件,一个网络socket或者一个程序组件的连接。它有能力执行一个或者多个高效的I/O操作,例如读或者写。
2. 一个Channel要么打开要么关闭。一个Channel的打开是在创建的基础上的,一旦关闭永远关闭。一旦Channel关闭了,任何尝试在Channel上调用一个I/O的操作将会抛出一个ClosedChannelException。判断一个通道是不是打开可以通过调用它的isOpen()方法
3. Channel,通常是有意的把多线程访问安全相关的描述在extend或者implements这个接口(Channel)的接口或者类中说明。
4. Channel接口的两个方法:
1)boolean isOpen()
判断一个通道是否是打开状态,true 表明打开
2) void close()
#1 在一个通道关闭之后,任何进一步尝试在channel上调用的I/O操作将会抛出一个ClosedChannelException
#2 如果一个通道已经关闭了,然后再调用close方法,没有任何效果。
#3 close方法可能在任何时候调用,如果有其他的一些线程已经调用了它,然而,然后其他的调用close方法的线程将会阻塞直到第一个调用完成,之后它不会返回任何效果。