Java NIO之Channel学习

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方法的线程将会阻塞直到第一个调用完成,之后它不会返回任何效果。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值