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

简述

  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操作是否结束都直接返回,相应操作在后台继续处理。

Java提供了哪些IO方式? NIO如何实现多路复用? -_第1张图片

NIO概览

NIO组成部分:

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

你可能感兴趣的:(java,开发语言,后端,数据结构,系统架构)