• Netty-初入正题-Reactor介绍


    线程模型基本介绍

    不同的线程模型对性能的影响很大,我们必须要熟知各种线程模型。才能清楚的知道我们为什么要选择netty。

    目前存在的线程模型

    1.传统io阻塞模型。
    2.Reactor 模型。

    根据Reactor模型的数量和处理资源的线程池数量的不同,有3中典型实现。
    1.单线程单Reactor。
    2.单线程夺Reactor。
    3.主从Reactor多线程。

    Netty是在主从Reactor多线程模型中做了改进。有多个Reactor

    传统io阻塞模型

    工作原理图:
    在这里插入图片描述

    当并发数很大时,就会创建大量的线程模型。占用很大的系统资源。
    任务创建连接后,如果当前线程没有数据可读,就会阻塞在read阶段,造成浪费。

    Reactor模式

    基于io复用模型,多个连接使用一个阻塞对象,应用程序只需要一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态撤回,开始处理业务。
    Reactor模式又被成为调用者模式,分发者模式或者通知者模式
    不必为每个请求创建线程,而是采用分发处理。
    IO复用结合线程池。
    在这里插入图片描述
    Reactor模式j通过一个或者多个输入同时传递给服务器的模式(基于事件)
    服务器处理多个请求,并且把他们分配到相应的线程上去
    Reactor模式使用io复用监听,收到事件后会把他们分发给多个线程,这是高并发性能处理所在

    核心组成部分

    Reactor:Reactor负责事件的监听,分发,是在一个单独的线程中执行的。
    Handlers:负责执行真正要做的事。

    模式分类

    单Reactor单线程
    单Reactor多线程
    主从Reactor

  • 相关阅读:
    CSS(ellipsis) 用百分比宽度将字符串溢出部分显示为省略号
    DQL简介
    操作系统性能参数调优
    【ES】---field、field.keyword的区别
    物联网AI MicroPython传感器学习 之 4路电容式触摸开关
    初始安装tp6,并启动项目
    手机远程控制plc有什么优势
    七月集训(4)贪心
    Linux-进程、任务和作业管理
    引用
  • 原文地址:https://blog.csdn.net/weixin_45487988/article/details/125447194