美文网首页工作生活
并发算法之并行流水线

并发算法之并行流水线

作者: 夏与清风 | 来源:发表于2019-07-01 20:09 被阅读0次

    并发算法虽然可以充分发挥多核CPU的性能,但并非所有的计算都可以改成并发的形式,在执行过程中有数据相关性的运算都是无法完美并行化的。比如有2个数A和B,如果要计算(A+B)*A/2,这个运行过程是无法并行化的。如果A+B没有执行完,则永远算不出(A+B)*A,这就是数据相关性,如果线程执行时,所需数据存在这样的依赖关系,则无法将它们完美的并行化。

    如何解决这种情况呢?方式是借鉴流水线思想。即使(A+B)*A/2无法并行,但如果你需要计算一大堆A和B的值,依然可以将它流水化。首先将计算过程拆分:

    P1:C=A+B

    P2:D=C*A

    P3:D=D/2

    步骤P1,P2,P3均在单独的线程中计算,并且每个线程只负责自己的工作,此时P3的计算结果就是最终答案。

    --参考文献《实战Java高并发程序设计》

    相关文章

      网友评论

        本文标题:并发算法之并行流水线

        本文链接:https://www.haomeiwen.com/subject/vfincctx.html