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

相关推荐

  • oracle删除所有dblink(oracle dblink删除报错)

    技术Oracle中删除database link时报错怎么办本篇内容主要讲解“Oracle中删除database link时报错怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年12月22日
  • 怎么发短信,在网络上手机短信怎么发求答案

    技术怎么发短信,在网络上手机短信怎么发求答案新浪UC每天免费发十五条怎么发短信,如果超过这个数一条一角钱,不过得先用手机绑定,15条之内不花钱,还有一个是网易泡泡,这个软件和上面的UC一样也是通过时间来换取东西,UC换的

    生活 2021年10月26日
  • Hibernate连接池的配置方式有哪些

    技术Hibernate连接池的配置方式有哪些这篇文章给大家分享的是有关Hibernate连接池的配置方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Hibernate3.0中,已经不

    攻略 2021年11月17日
  • db_load如何生成数据库文件

    技术db_load如何生成数据库文件这篇文章主要介绍 db_load如何生成数据库文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!保存虚拟帐号和密码的文本文件无法被系统帐号直接调用。我们需要使用

    攻略 2021年11月23日
  • 没有编程经验的Python初学者遇到问题怎么办

    技术没有编程经验的Python初学者遇到问题怎么办这篇文章给大家介绍没有编程经验的Python初学者遇到问题怎么办,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于没有编程经验的初学者,在学习pyt

    攻略 2021年10月25日
  • sysbench 0.5有什么用

    技术sysbench 0.5有什么用这篇文章主要介绍sysbench 0.5有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一 前言 因为在准备做压力测试方面

    攻略 2021年11月7日