7

我注意到当我运行严重依赖 CPU 的 python 程序时,它只使用一个内核。运行程序时是否可以为程序分配多个内核?

4

3 回答 3

16

您必须为多个内核显式编程。有关Python 中的许多并行处理解决方案,请参阅此页面上的对称多处理选项。如果您不想比较选项,并行 Python是一个不错的选择,请查看此处的示例。

但是,有些问题无法利用多核。想一想如何在三个朋友的帮助下更快地跑上楼梯。不会发生!

于 2010-12-23T15:15:13.960 回答
5

我想知道为什么还没有人提到 CPython 的 GIL(全局解释器锁)。这基本上意味着一个 Python 解释器中的多个线程不能使用多核的功能,因为许多操作受到全局锁的保护,以实现线程安全。这仅适用于少量应用程序——CPU 密集型应用程序。有关更多信息,只需搜索“GIL”一词,已经有很多问题(例如那个)。

这个答案当然假设您实际上正在使用多个线程,否则您将无法使用多个内核(多处理将是另一种可能性)。

于 2010-12-23T16:35:14.993 回答
4

如果您的问题的任何部分可以并行运行,您应该查看多处理模块

于 2010-12-23T15:15:46.403 回答