先讲一个场景:“团队负责人接到一个新项目,他会把项目进行需求细化,功能细化,然后他会分配给不同的团队成员完成”。 在这个场景中,团队负责人就是master,团队成员就是worker,至于这样做的好处,不用说大家也明白,如果团队负责人一个人干,估么着他要么累死,要么任务完不成被领导骂死。
master-worker模型的最大作用就是提高处理效率,特别是在多核cpu上,多worker的并发执行更有效的利用了cpu资源,提高了处理效率。在我们的实际应用中master-worker模型往往会结合生产者-消费者模型使用,由master产生一个队列,而每个worker作为消费者消费这个队列。
回到上面的场景中,是个典型的瀑布团队的做法,由团队负责人把各个任务强行摊派给每个团队成员,他假设给每个人分配了合适的任务,也假设每个人能在指定时间内完成任务。如图一:

这种方式的典型应用就是memcached网络模型的使用。
这样看似很公平了吧。可是实际中肯定某人因为能力或者外界干扰的原因无法按时完成任务,这样也就影响了整体处理的效率。
干脆我们采用敏捷团队的做法,由团队成员自己选择任务,根据自己的能力甚至兴趣爱好,自我量力的保证自己可以完成,甚至效率高的成员还可以多选多做。如图二:

这种方式的典型应用就是nginx。
再回到上面的场景中,每个团队成员怎样得到任务呢?我对于图一中的模型,当我们往每个worker队列中push任务时就采用某种通知机制告知worker有任务了,快领命干活。比如memcahed的网络模型采用每个worker线程和master线程之间建立一个pipe来进行通知。(如果团队负责人简单地按照RR的方式分配任务,作为一个新手你肯定会抱怨,为什么我都忙得焦头烂额了还给我任务,天啊,谁来帮帮我啊)。对于图二中的方式,当有新任务时,大家看看谁能做,比如nginx就是采用worker争锁的方式来竞争任务,master只是负责管理每个worker,多好的团队成员,领导也省心。

以上就是对强大的master-worker模型的简单介绍,至于他的适用场景有很多很多,大家可以自己扩展。另外从上面的场景模拟中我也想向大家推荐敏捷团队的管理组织方式,至于好坏,用后请看疗效。

参考书籍:
《深入理解计算机系统》  13章-并发编程
《UNIX环境高级编程》    11章-11.3线程标识
本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1170944如需转载请自行联系原作者
yaocoder

从master-worker模型看团队管理相关推荐

  1. 从团队协作的五大障碍看团队管理该怎么做

    1. 团队协作的五大障碍 团队协作的五大障碍出自<团队协作的五大障碍>这本书,书中的五大障碍是指: 缺乏信任:该问题源于团队成员大都害怕成为别人攻击的对象,害怕在他人面前犯错误.大家不愿意 ...

  2. php 多进程 常驻内存,PHP 多进程与信号中断实现多任务常驻内存管理 [Master/Worker 模型]...

    本文章基于pcntl扩展做的多进程测试. 进程调度策略 父子进程的调度由操作系统来负责,具体先调度子进程还是父进程由系统的调度算法决定,当然可以在父进程加上延时或是调用进程回收函数pcntl_wait ...

  3. 怎么才能做好团队管理|方法论加模型案例(附常用管理模型、人员架构图)

    这篇老付要讲一个老生常谈但是又千古难解的话题:团队管理.作为一个互联网人士,要把自己关于团队管理的想法说透,真是比前面几篇都更有挑战性.为了达到最好效果,老付分别找了5-6个不同企业性质和团队规模的创 ...

  4. [原创] OneThink模型管理详解-10分钟创建一个团队管理后台

    本文为原创,根据自己在使用onethink创建web应用时的真实经历撰写而成.请支持本人版权,转载时注明出处.仅为经验分享,不代表权威,不完善不准确之处欢迎纠正,有任何问题可对本文留言. 1.1.1  ...

  5. 敏捷开发团队管理系列之五:大型研发团队的切分(刚参加3.17 MDP团队管理场次的读者请看)...

    本文是团队管理系列的第五篇,也是"松结对编程"系列的第九篇.(团队管理栏目目录,松结对编程栏目目录) 抱歉在这次MPD上不知道中间的20分钟茶歇也在3小时内,所以最后有10分钟左右 ...

  6. 微软Asp.Net架构与项目团队管理建设模型分析

    Microsoft Visual Studio 2008 RTM版本已经发布好久了,最近的项目准备用最新的微软技术Microsoft Visual Studio 2008 RTM +Microsoft ...

  7. 看《西游记》谈团队管理

    以前看过开心网一个笑话,好像是说: 沙和尚说的最多是哪几句话: 1.大师兄,师傅被妖怪抓走了 2.二师兄,师傅被妖怪抓走了 3.大师兄,师傅和二师兄被妖怪抓走了 看看一笑了之,突然想起之前有过< ...

  8. 看《西游记》谈团队管理(超博好领导系列)

    以前看过开心网一个笑话,好像是说: 沙和尚说的最多是哪几句话: 1.大师兄,师傅被妖怪抓走了 2.二师兄,师傅被妖怪抓走了 3.大师兄,师傅和二师兄被妖怪抓走了 看看一笑了之,突然想起之前有过< ...

  9. 从张小平这样登月人才的离职事件,看团队期望管理的重要性

    从张小平这样登月人才的离职事件,看团队期望管理的重要性 文|洪生鹏 朋友圈被一篇关于航天601所的一封公文要人的公文刷屏了,公文的大意是:我司研究员张小平跳槽了,当初批准他辞职的时候,没觉得他有什么独 ...

  10. 从《红楼梦》看 IT 团队管理

    GitChat 作者:李烨 原文:从<红楼梦>看 IT 团队管理 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 恒定的人性 太阳底下已经没有新鲜事了. 这话并不是说今天所 ...

最新文章

  1. java retentionpolicy_Java注解之如何利用RetentionPolicy.SOURCE生存周期
  2. 震撼三观:从细胞到宇宙
  3. 随手正则写的 CSDN【只看楼主】功能
  4. 实例化Spring Bean:Bean实例化的姿势有多少种?
  5. java url no protocol_httpurlconnection 新人使用遇到错误java.net.MalformedURLException: no protocol...
  6. python format函数实例_python中强大的format函数实例详解
  7. 在Java EE 7上骑骆驼–带有Swagger文档的REST服务
  8. Redis简单案例(四) Session的管理
  9. 【TensorFlow】常用的损失函数及其TensorFlow实现
  10. DB2 Vs MySQL系列 | MySQL与DB2的数据类型对比
  11. Unity2020.1新功能探路:光照相关更新
  12. 数组引用--冒泡排序 数组倒置为例
  13. 给 kibana 增加一个退出logout按钮
  14. 实用的摩斯编码(二)
  15. Python(七)Socket编程、IO多路复用、SocketServer
  16. HDU-6287 口算训练(想法题)
  17. 福建等保测评五流程,收藏收藏
  18. Saltstack_使用指南11_配置管理-状态之间依赖关系
  19. 苹果手机里微信数据删除怎么恢复?
  20. 云服务器 - 腾讯云主机信息

热门文章

  1. 为什么谋生是不道德的
  2. html5新标签笔记,HTML5新标签学习笔记
  3. 单片机定时报警C语言程序,单片机控制的简易定时报警器电路设计( - 控制/MCU - 电子发烧友网...
  4. css grid 自动高度_CSS Grid布局指南
  5. 安装nltk,textacy库
  6. android 开启离屏缓存,Android性能优化笔记(持续更新帖)
  7. python颜色参数_python matplotlib:plt.scatter() 大小和颜色参数详解
  8. 明晰当下洞见未来 做区块链你还需要这四项技能
  9. Java并发系列—并发编程基础
  10. kali linux Python开发环境初始化