java面试 NIO、BIO、AIO,你就把这几句说给面试官!

先来个例子理解一下概念,以银行取款为例:

  • 同步:相当于自己去银行取钱
  • 异步:派了个小弟去取钱
  • 阻塞:小弟或者自己ATM排队买号
  • 非阻塞:柜台取款,直接取号干其他事,到了自己,就去取钱

io 流:

主要包括了InputStream、OutputStream、read、write 流之间的传输

Java对BIO、NIO、AIO的支持:

  • java BIO :同步并阻塞,一个连接一个线程
  • java NIO:同步非阻塞,一个请求一个线程
  • java AIO:异步非阻塞,一个有效请求一个线程

BIO、NIO、AIO适用场景分析:

  • BIO方式适用于连接数目小的且固定的架构,jdk1.4之前唯一选择。
  • NIO方式适用于连接数目多且连接比较短的架构,比如聊天服务器,并发局限应用中,jdk1.4之后开始支持
  • AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

你可能感兴趣的:(面试)