java AsynchronousByteChannel接口

总结

  1. 实现AsynchronousByteChannel接口表示该类是可以读取和写入字节的异步通道
  2. 某些通道可能不允许在任何给定时间有多个未完成的读或写操作。如果线程在前一个读取操作完成之前调用了读取方法,那么将抛出ReadPendingException。类似地,如果在上一次写入完成之前调用了写入方法,则会抛出WritePendingException
  3. 请注意,ByteBuffer对于多个并发线程来说是不安全的。启动读或写操作时,必须注意确保在操作完成之前不会访问缓冲区

AsynchronousByteChannel接口方法

方法名作用
void read(ByteBuffer dst, A attachment, CompletionHandler<Integer,? super A> handler)从该通道将字节序列读入给定的缓冲区ByteBuffer, attachment是附件,传递给 handler的回调函数的附件,启动异步读取操作,到时等系统完成任务后自动调用回调函数,会自动把attachment再传回来,并传回一个Integer表示此次读取字节的数目
Future< Integer> read(ByteBuffer dst)从该通道将字节序列读入给定的缓冲区ByteBuffer,启动异步读取操作,没有回调函数,只有返回的Future的对象,Future的对象的get方法会阻塞的返回读取的字节数
void write(ByteBuffer src, A attachment, CompletionHandler<Integer,? super A> handler)从给定缓冲区将字节序列写入此通道,有attachment附件,有回调函数,启动异步写入操作,当异步写入操作完成,会自动调用回调函数,回调函数返回写入字节数目和当时注册异步时传入的附件attachment
Future< Integer> write(ByteBuffer src)从给定缓冲区将字节序列写入此通道,启动异步写入操作,没有回调函数,只有返回的Future的对象,Future的对象的get方法会阻塞的返回写入的字节数
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lolxxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值