主仆模式的一点小理解

主从模式根据名字来说就知道,拥有一主一从。对他的操作就有主有次。这种模式主要有两部分组成,主设备和从设备。主设备组件在相同的设备组件中分配工作,并计算最终结果,而这些结果是以后从设备返回的。

主从模式幼教主仆模式,这种模式的核心思想试讲一个原始的任务,变为不同的子任务,就像一个主人把任务分配给自己的多个仆人一样进行完成,当仆人完成各自的子任务之后再交还结果给自己的主人,主人再把所有仆人的结果整合到一起,得到一个真正的综合结果,这就是大概的运行思路,但是要仆人进行运算就得给仆人时间和场地,所以程序还要专门的生出让仆人工作的场地,就是说要提供专门的线程来让子程序进行运算,所以我们可以看出来,主从模式实际是一种多线程模式。

多线程模式就有多线程模式的好处,首先因为线程较多,我们程序中的仆人可以一起进行运算,这就导致了运行效率的提高,也提高了程序的性能,让程序运行的资源利用率提高,进而造成的结果就是程序运行速度的提高,计算精度的提高,由于线程之多,我们程序的容错率也大大提高。

但同时这也造就了一些无法改变的缺点,由于线程的不断增多,会导致硬件的内存会被不断的占用,导致内从在运行大程序时不一定够用,而且由于主仆之间不断地进行数据的交流,交流必然需要时间,这就导致了时间上会产生一些问题,主人要一直协调与不同仆人之间的时间交流问题,导致了数据交换和运行的不及时性,仆人之间也会互相争夺资源来进行自己的运算。

  • 在数据库复制中,主数据库被认为是权威的来源,并且要与之同步
  • 在计算机系统中与总线连接的外围设备(主和从驱动器)

我们可以把主从模式认为是一种一对多的模式,由一个主模式对应着多个它下属的从模式。这种模式我们首先可以利用它来进行数据库标的设计,建立一个数据库的主从表,而最基本的就是一个主表,一个从表。进而利用这种结构就可以完成一种最简单的程序的搭建,比如说百度贴吧的最简化搭建,每个人都可以在贴吧里帖子,每一个不同的吧就可以看做是一个主表,每个人发的帖子就可以看做是一个从表。从这个例子中,我们很明显的就可以知道主从关系是什么对应关系了,主表就是贴吧,从表就是吧里发的帖子,这两者就是一种一对多的关系,不但如此,每个帖子因为有人可以回复,一个帖子就拥有了多个回复,这又构成了一个新的主从关系表,凡是类似这种的都可以利用主从模式来进行数据库的建立。

原文地址:https://www.cnblogs.com/anjiu/p/9070437.html

时间: 2024-10-18 08:15:55

主仆模式的一点小理解的相关文章

Layui的一点小理解(上)

首先声明这是个人的一点理解,如有不对之处请指正,以下的例子有在官网上看到的,有的是自己写的.还是老规矩最后会附上官网的,如有不明白之处,请查看文档或留言. 既然说Layui,当然要简单的介绍以下什么是layui啊!下面是官方的解释: Layui 是一款采用自身模块规范编写的国产前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发.layui还很年轻

Java学习:动态代理的一点小理解

手动实现 之前的一篇讲IoC的博文提到了代理模式,事实上代理模式就是AOP实现的重要基石.但是上面的代码有一个显而易见的缺陷,也就是之前讲解反射内容时提到的:不具备动态性. 上面代码中的Server就像是反射理解博文中提到的工厂订单管理员一样,每增加一样菜系,就需要相应更新手上的菜单.类比反射特性,我们完全可以做到让服务员不需要手上拿着菜单来为顾客服务: // 服务员实现类 public class ServerImpl implements Server { // 采用组合的方式引入noodl

柯里化的一点小理解

假如说我有一个函数,这个函数只有一个参数,这个参数是只有一个参数的函数,比如说 def f1(p: (Int) => String) { println(p(5)) } def p1(x: Int): String = { (x + 10).toString } //执行函数 f1(p1) 这时我们另外一个函数是这样的 def p2(x:Int,y:Int):String={ (x+y).toString } 这种情况下,f1将无法调用p2,参数不匹配.但如果将p2改造一下呢?改造好的函数我们设

python关于装饰器的一点小理解

越来越感觉,对于一些术语,真的不能看了名字就想着用自己的 语言/想法 去试着解释,比如socket/套接字,再比如装饰器,仅凭字面意思,很难理解的,反而会把你带到坑里去 def f1(fn): def action(): return "<a>"+fn()+"</a>" return action @f1 def test(): return "is test" print test() 运行结果 <a>is

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

新闻发布的一点小总结

经过一段时间的学习,完成了新闻发布的基础功能,进行一点小总结,方便日后回顾.下面是我的一点小总结,不足之处请勿见笑... 我们想要完成一个新闻发布,首先要使其能够成功发布,并且让它能够实现添加.删除.修改.查询.上传.下载等功能.我们还调用AJAX功能查看输出为XML.JSON格式的新闻内容.为完成以上功能,我们首先要进行jdk.tomcat.eclipse的安装和配置.1.各软件的安装和配置1.1.jdk的安装和配置: 1.1.1.下载jdk:下载地址:http://www.oracle.co

给Javascript初学者的一点小建议

本文来自e良师益友网 一般初学JavaScript的时候最头痛的就是浏览器兼容问题.在Firefox下面好好的代码放到IE就不能显示了,又或者是在IE能正常显示的代码在firefox又报错了. 如果你正初学JavaScript并有着一样的处境的话建议你:初学JavaScript的时候无视DOM和BOM的兼容性,将更多的时间花在 了解语言本身(ECMAScript).只在特定浏览器编写代码(Chrome/Firefox/Safari),实际工作中使用成熟的 JavaScript框架(jQuery等

关于win8开发的一点小总结

我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextBox的访问. 这时候我运转程序,它会先走构造方法的InitializeComponent方法,然后就直接走到Checked事件,这时候可以看到TextBox是个null值,也就是说它还没被初期化. 我的理解是InitializeComponent方法先初期化CheckBox,当初期化它的IsChec

工厂模式的一点疑问

最近看了一下设计模式中的工厂模式,对于其中的工厂方法模式有一点疑问,在此记录,方便以后学习所需. 首先工厂模式是为了满足开闭原则:扩展开放,修改封闭. 对比一下简单工厂模式和工厂方法模式,会发现简单工厂模式中的createBMW()方法中包含的选择生成方法的switch语句,在工厂方法模式中的工厂类里没地方放,因此只能移交给客户,由客户来做switch.好了,那么问题来了(挖掘机哪家强?),在工厂方法中真的满足开闭原则吗?是的,工厂类和产品类满足,可是客户类呢?增加一个产品就必须到客户类里修改s