gpt4 book ai didi

multithreading - 为什么多线程应用程序通常会扩展不良?

转载 作者:行者123 更新时间:2023-12-04 04:28:30 24 4
gpt4 key购买 nike

我目前正在思考多线程应用程序可能无法很好扩展的原因。

我知道并一直与之抗争的两个原因是:

  • 线程间通信没有做好,导致速度变慢
  • 芯片上的内核数和内存带宽与 CPU 不成比例地增加。这导致每个内核的内存带宽越慢,芯片上使用的内核越多。

  • 还有什么问题?

    最佳答案

    对于第 1) 点,它们不一定“做得不好”,但在大多数情况下,存在进程/线程必须相互等待的临界区,例如更新一些关键数据。阿姆达尔定律很好地描述了这一点。

    我想补充的另一点是任务本身的可扩展性。如果任务(输入)不可扩展,那么增加处理能力(核心/线程)无法提高整体吞吐量。例如,一个应用程序是处理数据流,但有一个约束,不能并行处理来自同一流的数据包(出于排序考虑),那么可扩展性将受到流数的限制。

    此外,考虑到 O(1) 和 O(n) 算法之间的差异,算法的可扩展性更为根本。当然,也许这里的主题侧重于处理能力的可扩展性,而不是数据大小。

    关于multithreading - 为什么多线程应用程序通常会扩展不良?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347613/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com