【问题标题】:Why are X threads used in hardware that support X threads? Why not X-1 threads?为什么在支持 X 线程的硬件中使用 X 线程?为什么不是 X-1 线程?
【发布时间】:2018-06-11 09:39:18
【问题描述】:

阅读: https://mariadb.com/kb/en/library/thread-pool-in-mariadb/

关于线程数,它说:

有助于减少上下文切换的理想解决方案是保持线程数少于客户端数。但这个数字也不应该太低,因为我们还想充分利用 CPU,所以理想情况下,机器上的每个 CPU 都应该有一个活动线程。

在查看市场上不同的 CPU 时,假设我购买了一台具有 2 核 4 线程 CPU 的计算机。假设您在 Linux 上,并且有任务调度程序。我不想实际使用 3 个线程吗?因为1个线程最好留给操作系统来做东西/其他实用程序?

【问题讨论】:

    标签: linux multithreading semantics


    【解决方案1】:

    稍后进行大量的多线程编程。理想情况下,它应该执行 X-1 个线程,但问题是,实际上无论您告诉您的进程运行多少线程,如果不是数百个进程同时运行,则可能有 10 秒。

    硬件和操作系统真正决定了进程在哪个线程上运行,因此将进程配置为运行 x 个线程只能确保如果每个线程都忙,那么它将使用 4 个内核,否则只会委派最少的资源,使计算机能够使用最少的能量和时间,但仍能完成所有工作。

    另一方面,如果你真的想为一个线程专用一个核心 - 那么在 Linux 中你使用 CPU 亲和性,但如果有其他方式,通常这样做是个坏主意 - 几乎总是有其他方式.

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 2016-02-04
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多