reactor模型—生动形象

网上有很多讲解reactor模型的,我还是看了比较久才稍微领悟一点意思,那么我就举个例子讲讲自己的理解。

我们首先先结合NIO、多路复用的知识,做一个比喻。

大前提:餐馆的服务员现在假设只有一个(还需要兼职厨师),那么当一个客人来了之后,服务员会把菜单给客人,然后就走开去迎接其他客人,当有客人点好餐的时候会把菜单告诉服务员,服务员就会去做事,热按后服务员再把菜给客人,就完成了完整的一次流程。

那么针对reactor的三种模型。

一.单线程模式

那么这个时候就是指餐厅只有一个服务员(兼职厨师),那么这个时候会产生什么问题喃?

(1)当客人多了的时候,应付不过来。(网络请求多了以后,很多请求其实就是一直在等待)

(2)当有一个客人的菜特别复杂的时候,例如满汉全席,那其他客人就只能一首凉凉了。(当一个业务处理很久或者死循环了,那么整个服务挂掉)

所以针对上面的缺点,有了第二种模式。

二.多线程模式

那么这个时候就是指餐厅可以请多个厨师了,服务员被解放出来了,只用招呼客人。这样就可以很好地解决单线程模式的困扰。但是这样仍然存在一定的问题。

(1)当客人特别特别多的时候,服务员忙不过来了。

(2)厨师高产出下,会把菜交给服务员,结果服务员也忙不过来了。

为了解决这样的问题,就有了第三种模式。

三.主从模式

那么这个时候就是指:老板把这个服务员升级成主管了,然后老板另外请了几个服务员。每次来客人总会经过主管之手,然后主管就随便告诉一个其他的服务员先招呼客人(做主管以前做的事情,即一,二),然后主管就什么都不用管了,这个时候主观的压力就很小了,以前是10个客人的菜都由他传递与接收,现在是平分给了其他几个服务员,这样效率就更高了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值