BIO/NIO/AIO 基础普及

一、了解Unix网络编程5种I/O模型

1.1、阻塞I/O

1.2、非阻塞I/O

1.3、I/O复用

1.4、信号驱动的I/O

1.5、异步I/O

二、Java IO模型

2.1、1:1同步阻塞IO通信模型

2.2、M:N形式的同步阻塞IO通信模型

2.3、非阻塞式IO模型(NIO)  NIO+单线程Reactor模式

2.4、非阻塞式IO模型(NIO)  NIO+多线程Reactor模式

2.5、NIO+主从多线程Reactor模式

2.6、总结

 同步IO和异步IO的区别就在于:数据访问的时候进程是否阻塞! 阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!

三、NIO和Reactor模型

3.1 java NIO核心组件

3.2 Java NIO Channel

(1)分类

Java NIO Channel里又分:FileChannel,DatagramChannel,SocketChannel,ServerSocketChannel四种。

(2) Java NIO 通道之间的数据传输

在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel传输到另外一个channel。

3.3 Java NIO Buffer

(1)各个操作节点capacity,position,limit的变化:

A:开辟缓冲区

B:put() 方法

C:flip() 方法

d:rewind() 方法

 (2)Java NIO Buffer的读写模型:


3.4 Java NIO Selector

Channel注册事件(包括connect read write事件),NIOSelector选择,处理事件的流程图:

 

3.5 Reactor模型

(1)NIO+单线程版

(2)NIO+多线程版

(3)NIO主从多线程

Reactor中的组件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值