如何理解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)

相关推荐

  • 抖音刷人气,网页版抖音刷人气平台?

    技术抖音刷人气,网页版抖音刷人气平台?代刷平台点击网址即可直接进入,这是国内首家支持人工刷抖音粉丝、抖音双击、抖音播放量、抖音上热门的网站,有兴趣的就来试试吧!小编我的收听量都是在这刷的,安全、靠谱、价格也便宜!强烈推荐

    测评 2021年11月11日
  • Oracle数据用户密码过期处理方法是什么

    技术Oracle数据用户密码过期处理方法是什么这篇文章主要讲解了“Oracle数据用户密码过期处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据

    攻略 2021年11月5日
  • 无权限访问共享文件夹,文件夹共享了但是不能访问权限

    技术无权限访问共享文件夹,文件夹共享了但是不能访问权限1.guest账户开启2.允许Guest用户从网络访问本机点击“开始→运行”无权限访问共享文件夹,在“运行”对话框中输入“GPEDIT.MSC”,打开组策略编辑器,依

    生活 2021年10月29日
  • 命令行中scp命令怎么用

    技术命令行中scp命令怎么用这篇文章将为大家详细讲解有关命令行中scp命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 scp 全称为secure copy,它能够对文

    攻略 2021年11月20日
  • YOLOv3-tiny怎么在VS2015上使用Openvino部署

    技术YOLOv3-tiny怎么在VS2015上使用Openvino部署YOLOv3-tiny怎么在VS2015上使用Openvino部署,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题

    攻略 2021年11月10日
  • java socket如何接收保证能读完数据

    技术java socket如何接收保证能读完数据这篇文章主要介绍java socket如何接收保证能读完数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!socket接收保证能读完数据//

    攻略 2021年10月31日