Netty学习

发布时间:2023年12月29日

一、NIO概念
阻塞:需要等待缓冲区中的数据准备好后才处理其他的事情,否则一直等待。
非阻塞:进程访问数据缓冲区的,如数据没有准备好直接返回,不会等待;如数据已经准备好,也是直接返回。
同步:是应用程序要直接参与IO读写的操作。
异步:所有的IO读写交给操作系统去处理,应用程序只需要等待通知。

二、BIO
是一个同步并阻塞的IO模式,传统的java.io包,基于流模式实现。
交互方式是同步、阻塞的方式。

三、NIO
是一种同步非阻塞的I/O模型,对应java.nio包,提供了Channel、Selector、Buffer等抽象。
面向缓冲的,基于通道的I/O操作方法
特点:
一个线程可以处理多个通道,减少线程的创建数量
读写非阻塞,节约资源,没有可读/可写数据时,不会发生阻塞导致线程资源的浪费

四、Netty
是一个NIO客户端服务框架。
Channel是JavaNIO的一个基本构造,传入或者传出数据的载体
EventLoop定义了Netty的核心抽象,用来处理连接的生命周期中所发生的事件,在内部,将会为每个Channel分配一个EventLoop
EventLoopGroup是一个EventLoop池,包含很多的EventLoop
Netty为每个Channel分配了一个EventLoop,用于处理用户连接请求,对用户请求的处理等所有事件,EventLoop本身只是一个线程启动,在其生命周期内只会绑定一个线程,让该线程处理一个Channel的所有IO事件。
Netty 是一个异步的、基于事件驱动的网络应用框架,它可以用来开发高性能服务端和客户端。

文章来源:https://blog.csdn.net/lssffy/article/details/134936700
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。