开发者社区> 问答> 正文

简述在Java语言中IO的方式通常分为几种

简述在Java语言中IO的方式通常分为几种

展开
收起
huc_逆天 2021-01-11 11:42:17 2749 0
2 条回答
写回答
取消 提交回答
  • Java程序员

    1、OIO中,每个线程只能处理一个channel(同步的,该线程和该channel绑定)。 线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成,如图:

    image.png

    2、NIO中,每个线程可以处理多个channel(异步)。

    线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成

    image.png

    3、AIO中,线程发起IO请求,立即返回;内存做好IO操作的准备之后,做IO操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做IO操作完成或者失败

    image.png

    2021-03-09 17:54:42
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter
    • 同步阻塞的 BIO
    • 同步非阻塞的 NIO
    • 异步非阻塞的 AIO 在使用同步 I/O 的网络应用中,如果要同时处理多个客户端请求,或是在客户端要同时和多个服务器进行通讯,就必须使用多线程来处理。
    2021-01-11 11:42:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
从《阿里巴巴Java开发手册》编写推广谈技术成长 立即下载
如何通过 Serverless 提高 Java 微服务治理效 立即下载
多IO线程优化版 立即下载