Java提供了哪些IO方式? NIO如何实现多路复用? -

本文介绍了Java的IO方式,包括传统的同步阻塞IO,以及1.4引入的NIO(同步非阻塞IO)和7.0的AIO(异步非阻塞IO)。重点讨论了NIO的组成部分,如Buffer、Channel和Selector,并阐述了NIO如何通过Selector实现多路复用,解决BIO在高并发下线程资源消耗大的问题。
摘要由CSDN通过智能技术生成

简述

  1. 同步阻塞IO库:传统的java.io包下面一些熟知的IO功能,比如File抽象,输入输出流等,交互方式是 同步阻塞 。java.net下面提供的部分网络API,比如Socket、ServerSocket、HttpURLConnection;
  2. 1.4引入的NIO,提供了Channel、Selector、Buffer等新的抽象,可以用于构建多路复用的、 同步非阻塞IO ,同时提供了更接近OS底层的高性能数据操作方式;
  3. java7引入的 异步非阻塞 AIO,基于事件和回调机制。

知识点扩展

相关知识

  1. 同步和异步:同步需要等待当前调用返回,异步是通过事件、回调等机制来实现消息获取;
  2. 阻塞和非阻塞:阻塞时当前线程处于阻塞状态,非阻塞是不管IO操作是否结束都直接返回,相应操作在后台继续处理。

NIO概览

NIO组成部分:

  • Buffer,高效的数据容器
  • Channel,类似于OS的fd,用来支持批量式IO操作的一种抽象;File或Socket通常是高层次抽象,Channel更接近于OS底层的抽象,例如用DMA获得特定场景的性能优化。
  • Selector,NIO实现多路复用的基础,可以检测到注册在S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值