温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
各位同学大家好,我们继续爱这个,完了以后终于来到了我们最后一个some,为啥?说直白一点,弟兄们都清楚,那么我们都明白萨姆方法求和是不是这个贝斯加全部的S单元格数组啊,好的,说白了。这个公式一说你就会明白,那么来,不要害怕萨姆几乎是什么,我们最后最简单的一个。并发程序的源代码了,那么来吧,直接抓个图都过来了,来吧。那么我们在这儿了以后。各位亲,这个呢,就是最终我们来合并求和,返回当前的求和值啊,注意这个return value is not an snap short不是不是原子性的。那么因为我们在计算的时候只是算出这种实时当下这一瞬间它的求和值是多少,因为我们在求和的过程当中也会有新的线程打进来啊,假设在高并发这种极端情况下,所以人家没有在这新克加速,那么这儿一看就明白了,那么这些都是老熟人了对吧?萨姆首先先获得贝斯值啊,然后呢?
01:10
As是C单元格数组,只要不等于那的话,怎么着for循环一加给你返回,这个都不用多说吧,OK,所以说在这儿我们可以获得三。这个求和这个函数会将所有塞数组和中的value值和贝子值累加作为反回值,核心思想就像之前奥米克的一个value更新压力分散到多个Y流轴当中去。说穿了。化整为零,分散热点。最后。降级了以后再更新热点,最后再把他们一锅端再合并加起来,那么为什么在并发情况下这个值呢不精确,我们这儿呢,也简单的说一个啊。这个三代执行的时候并没有限制对贝斯和C数组更新,这是一句要命的话啊,那么什么意思呢?就是说我们这个呢,呃,把它呢,简简单单翻译和说一下的意思就是。
02:01
这个弄它不是什么强一致性的,它是最终一致性啊,所以说这个比较要命啊,它。不是精确的听懂非原子只是什么?最终一致性好,首先啊,我们最终返回,这算的什么局部变量,因为你在做的时候,人家也还在改着贝斯和CE数组,OK,那么。这个时候我们在返回的时候,很可能这个base已经被更新了,此时的局部向变量不会被更新,会造成不一致,好所以说在这块的话呢,我们呢,也就不再多啰嗦了,已经说的很清楚,那么最终兄弟们。我们就可以得到一个使用的总结。来吧,首先,奥米克。线上安全可以允许你有一些性能消耗,要求高精度的时候可以用米,Long是保证了精度,但是有点性能代价,我们原来比较过,它的性能不如long how它的。重试次数非常多,奥米是多个线程,针对单个热点值的value进行原子操作,好。
03:01
下面呢用呢注意。当需要在高并发下有较好的性能表现,且对值的精确度要求不高的时候就可以使用,它是属于什么?反着来它是保证了性能,但是牺牲了一点精度代价。我们上面是不是刚介绍完我们的?Sum姆求和,这个OK,为什么叫牺牲精度?代价不断多说了,所以说no a达是每个线程拥有自己的槽,各个线程一般只对自己槽中的那个值进行CS,最后求合并,好,那么这个就是两者的区别。
我来说两句