码迷,mamicode.com
首页 > 其他好文 > 详细

生产消费者模式,并不是高并发模式

时间:2017-06-24 19:44:59      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:核心   独立   例子   消费者模式   竞争   分割   大量   同步   手机   

我为什么说生产消费者模式,并不是高并发模式?
因为高并发的关键因素是数据分割,不是通信。
生产消费者模式只是一个异步数据通信模式。对并发性能的提高有限。

为什么数据分割对并发性能影响这么大?

首先,我们需要说一说硬件cpu,毕竟软件最后是cpu来执行。
我们的目标是让代码性能尽可能的高。
更详细的表述,就是让代码最大限度的发挥cpu的性能。
现在的电脑、手机都已经全部是多核cpu了。
所以,表述就是让代码最大限度的发挥多核cpu的性能。
最大限度的发挥多核cpu的性能,需要我们尽可能的保证代码的高并行度。
高并行度就是代码尽可能在再多个cpu核心上独立运行,尽可能减少多个cpu核心的之间的同步,也就是减少锁竞争。因为锁竞争会使得代码变成串行执行,会花费大量cpu时间来加锁。

多个核心为什么需要同步?
因为他们需要正确的操作同一个内存块。既完成内存块的操作,又不破坏数据。

下面是具体例子:

微服务

微服务其实隐含着数据分割的思想。

单核到多核的发展

单核进一步提高性能,需要更高的频率,或者单周期执行更多的指令。
更高的频率,受限于功耗墙。
单周期执行更多的指令,使得单个cpu核心的设计变得更加的复杂,难度巨大。

生产消费者模式,并不是高并发模式

标签:核心   独立   例子   消费者模式   竞争   分割   大量   同步   手机   

原文地址:http://www.cnblogs.com/yipiancaidi/p/7074051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!