Java NIO简介

本文深入探讨Java NIO的通道和缓冲区概念,介绍如何利用这些组件实现高效的数据传输。此外,还介绍了选择器机制,说明单一线程如何同时监听多个通道的事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Java NIO: Channels and Buffers(通道和缓冲区)

       标准的IO是基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。

常用的Channels和Buffers:

  • FileChannel
  • DatagramChannel
  • SocketChannel
  • ServerSocketChannel
  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer


    Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

     Selector允许单线程处理多个 Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。例如,在一个聊天服务器中。

 

 

http://blog.jobbole.com/88984/这篇是“一个故事讲清NIO,故事大致就是在“每一个步骤”都尽量减少一对一等待的冗余时间,设置专职人员只做某一方面工作。

下面是大致流程图:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值