(1)netty介绍和IO模型

186 阅读2分钟

什么是Netty?

netty是一个高并发的通信框架。

IO读写的基础原理

有两种IO

  1. 进程缓冲区和内核缓冲区的交互
  2. 内核缓冲区和物理设备的交互

四种IO模型

同步和异步的区别:

同步是用户线程发起,异步是内核空间发起的

阻塞和非阻塞的区别:

阻塞是发起IO后需要等待IO结束

  • 同步阻塞IO****

优点:开发简单。阻塞期间,用户线程挂起,不会占用CPU资源

缺点:一个连接一个线程,不适合高并发

  • 同步非阻塞NIO

优点:用户等待线程过程中不会阻塞,实时性较好

缺点:不断轮询内核,占用CPU时间

指的并不是Java的NIO包,

  • IO多路复用

解决同步非阻塞模型中轮询等待的问题

linux对文件的操作实际上是通过文件描述符,而IO复用模型就是,通过一个进程监听多个文件描述符,一旦某个文件描述符准备就绪,就去通知程序做处理。不仅单个链接处理的快,而且能处理更多链接

  • 异步IO

用户线程通过系统调用注册IO操作,直到完成都不阻塞。

应用程序只需要进行事件的注册与接收,其余工作都要操作系统完成,需要支持

windowsIOCP真正支持,Linux还是IO多路复用,

netty也还是IO多路复用

总结

到此为止都是高并发IO的底层原理。但即使最先进的模型也需要合理的配置

JavaNIO通信基础

Reactor反应器模式

并发基础中的Future回调模式

此处为语雀内容卡片,点击链接查看:www.yuque.com/u22564695/s…