理解java的BIO/NIO/AIO

文章目录

在理解Java的BIO/NIO/AIO之前我们先梳理下linux的相关io概念,下面是参考的连接

我在网络上搜索相关io 有句话很熟悉

BIO 下的连接对应一个线程 , NIO 下的请求对应一个线程 , AIO下的有效请求对应一个线程

  • BIO:线程发起 IO 请求,不管内核是否准备好 IO 操作,从发起请求起,线程一直阻塞,直到操作完成。
  • NIO:客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。
  • AIO:线程发起 IO 请求,立即返回;内存做好 IO 操作的准备之后,做 IO 操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做 IO 操作完成或者失败。

请求可以是读写都会创建对应线程处理,而有效请求着是 处理完对应io操作后才会调用对应的线程去操作

netty介绍
RPC一-线程模型 · 造舟野渡

RPC二-NettyHandler处理消息 · 造舟野渡
RPC三-rpc协议和编解码 · 造舟野渡
RPC四-netty异步双向责任链 · 造舟野渡
RPC五-可靠性设计 · 造舟野渡
RPC六-动态代理 · 造舟野渡

Java io相关内容

java - 理解什么是BIO/NIO/AIO_个人文章 - SegmentFault 思否

Java Development: BIO, NIO, AIO and Netty | Medium

linux io的相关链接

套接字 socket 和 tcp 连接过程 - JMCui - 博客园

网络 IO 模型简单介绍 - JMCui - 博客园