zoukankan      html  css  js  c++  java
  • Java Aio

    1.简述

      AIO是Java中IO模型的一种,作为NIO的改进和增强随JDK1.7版本更新被集成在JDK的nio包中,因此AIO也被称作是NIO 2.0。区别于传统的BIO(Blocking IO,同步阻塞式模型,JDK1.4之前就存在于JDK中,NIO于JDK1.4版本发布更新)的阻塞式读写,AIO提供了从建立连接到读、写的全异步操作。AIO可用于异步的文件读写和网络通信。

      异步IO采用“订阅-通知”模式:即应用程序向操作系统注册IO监听,然后继续做自己的事情。当操作系统发生IO事件,并且准备好数据后,在主动通知应用程序,触发相应的函数。

    2.AIO主要API详解

      AIO主要在NIO的Channels包下增加了四个异步通道

    • AsynchronousSocketChannel:客户端Socket通道类,负责客户端消息读写。
    • AsynchronousServerSocketChannel:服务端Socket通道类,负责服务端Socket的创建和监听。
    • AsynchronousFileChannel:负责异步读取、写入文件。
    • AsynchronousDatagramChannel:

      AIO的缺点

    • 实现复杂。
    • 需要额外的技能、资料也较少。
    • 一个著名的Selector空轮询bug,它会导致CPU100%。
    • 可靠性差

      因为资料较少所以不写了,最后总结如下

        AIO使用情况较少,基本不会用到,网上的资料也较少,使用时出现问题不好解决。所以尽量不要使用,当然这只是个人观点。

  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/bl123/p/13821138.html
Copyright © 2011-2022 走看看