如何理解Reactor线程模型

技术如何理解Reactor线程模型如何理解Reactor线程模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言Reactor模型是基于事件驱动的线程

如何理解Reactor线程模型,针对这个问题,本文详细介绍了相应的分析和解答,希望能帮助更多想要解决这个问题的小伙伴找到更简单更容易的方法。

反应器模型是事件驱动的线程模型,可分为反应器单线程模型、反应器多线程模型和主从反应器多线程模型,通常基于I/O复用实现。不同的角色和职责是:Dispatcher负责事件分发,Acceptor负责客户端连接,Handler负责非连接事件(如读写事件)。

1.反应器单线程模型

1.原理在反应器单线程模型中,操作在同一个反应器线程中完成。根据事件的不同类型,Dispatcher将事件转发给不同的角色进行处理。连接事件被转发给接受者处理,读和写事件被转发给不同的处理程序处理。

如何理解Reactor线程模型

2.实施图

在NIO实现中,您可以在选择选择器中注册Accept事件,并轮询是否有“accept ready”事件。如果“连接就绪”被分发到接受者角色进行处理;“写就绪”事件被分发到负责写入的处理程序角色;读取就绪事件被分发到负责读取的处理程序角色。这就是所有的事情都在一个线程中处理。

如何理解Reactor线程模型

第二,反应器多线程模型

1.示意图

在反应器多线程模型中。根据事件的不同类型,Dispatcher将事件转发给不同的角色进行处理。连接事件被转发给接受者进行单线程处理,读写事件被转发给不同的处理程序进行线程池处理。

如何理解Reactor线程模型

2.实施图

在NIO实现中,您可以在选择选择器中注册Accept事件,并轮询是否有“accept ready”事件。如果“连接就绪”被分发到Acceptor角色进行处理,这里处理的“连接就绪”就是一个线程;“写就绪”事件被分发到负责写的处理程序角色,并由线程池处理;“读取就绪”事件被分配给负责读取并由线程池处理的处理程序角色。

如何理解Reactor线程模型

第三,主从反应堆多线程模型

1.示意图

反应器多线程模型,在接受者接受客户端连接请求后,创建一个SocketChannel,并将其注册到主反应器线程池中的线程选择中;是专门处理读写事件还是使用线程池处理(子反应器线程池)。

如何理解Reactor线程模型

2.实施图

在选择选择器中注册接受事件,并轮询是否有“接受就绪”事件;“连接就绪”被分发到接受者角色进行处理,新的SocketChannel被创建并转发到主反应器线程池中的线程进行处理;在指定的主反应器线程中,为读写事件注册SocketChannel当“写就绪/读就绪”事件分别由线程池(子反应器线程池)处理时。

如何理解Reactor线程模型

关于如何理解Reactor线程模型这个问题的答案,我希望在这里分享。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/99784.html

(0)

相关推荐

  • Windows下怎么安装Frida环境

    技术Windows下怎么安装Frida环境今天就跟大家聊聊有关 Windows下怎么安装Frida环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Window

    攻略 2021年10月23日
  • Go语言核心36讲,Go语言实战与应用九)--学习笔记

    技术Go语言核心36讲,Go语言实战与应用九)--学习笔记 Go语言核心36讲(Go语言实战与应用九)--学习笔记31 | sync.WaitGroup和sync.Once
    我们在前几次讲的互斥锁、条件

    礼包 2021年11月22日
  • java过滤器与拦截器的具体区别(java拦截器是什么模式)

    技术Java拦截器以及自定义注解的使用是怎么样的Java拦截器以及自定义注解的使用是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,设置预处理,设

    攻略 2021年12月21日
  • 位图索引BitMap举例分析

    技术位图索引BitMap举例分析这篇文章主要介绍“位图索引BitMap举例分析”,在日常操作中,相信很多人在位图索引BitMap举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”位图索

    攻略 2021年12月8日
  • C#中如何实现WPF联系人列表

    技术C#中如何实现WPF联系人列表这篇文章将为大家详细讲解有关C#中如何实现WPF联系人列表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.本文背景本文效果如下: 联系人列表2.

    攻略 2021年12月1日
  • MySQL性能优化的方法是什么

    技术MySQL性能优化的方法是什么本篇内容主要讲解“MySQL性能优化的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL性能优化的方法是什么”吧!一、优化思

    攻略 2021年12月3日