【问题标题】:Controlling CPU Usage and Threading In Python在 Python 中控制 CPU 使用率和线程
【发布时间】:2016-12-21 05:50:35
【问题描述】:

我正在用 Python 运行一个计算量很大的程序,在我的系统上运行大约需要 10 分钟。当我查看 CPU 使用率时,八个内核中的一个在 70% 左右徘徊,第二个在 20% 左右,其余的都接近 0%。有什么办法可以强制程序 100% 使用单核?

编辑:我认识到使用所有 8 个内核并不是一个好的选择,但是有没有办法强制一个内核达到 100% 的使用率?

【问题讨论】:

  • Python 是单线程的。
  • 如果有它不是特定于 python 的,那是你没有提到的操作系统。
  • 这个问题有一个你可能感兴趣的答案:stackoverflow.com/questions/20939299/…

标签: python multithreading cpu-usage


【解决方案1】:

对于多核应用程序,您应该使用multiprocessing 模块而不是threading。 Python 在线程方面存在一些(有据可查的)性能问题。在 google 中搜索 Global Interpreter Lock 以获取有关 Python 和线程性能的更多信息

【讨论】:

    【解决方案2】:

    Python 并不是真正的多线程。您可以创建线程作为管理逻辑进程的便捷方式,但应用程序本身有一个global thread lock。因此,您将只能使用单个线程。

    您可以使用不同风格的 python,但这可能会给您带来其他问题。如果您愿意将其分解为不同的进程,您可以使用subprocess 模块。这会创建两个不同的 python 进程,但它们可以独立运行。不幸的是,您必须编写一种他们通信的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多