python - Windows 7 是否自动为 Python 3 代码使用多处理器?

标签 python windows-7 parallel-processing

我有 Windows 7,我写了一个 python 程序,它在多个数据库上循环(“for 循环”,即“for key in dict”),检查各种条件(例如,如果 x in dict,y += 1 ) 然后计算结果。我没有做任何事情来并行处理程序。我的电脑上有 8 个 CPU 内核。当我在运行程序时启动 Windows 任务管理器时,它显示所有 8 个内核都有大量事件。 Windows 是否在我不做任何事情的情况下在多个处理器上并行执行 for 循环?代码执行速度很快。

最佳答案

没有。 Python 的 C 实现一次只允许一个线程解释一个字节码。利用多核的唯一方法是使用多线程或多进程。

但是,您完全有可能看到与您的脚本相关的多个核心事件。假设您打开多个文件进行读取或写入。操作系统将缓冲 Python 正在进行的读/写调用(代表您的脚本),并且在某些情况下会在该语句完成之前将控制权返回给下一条语句。然而,这是操作系统而不是 Python 进行优化。

Python 的 Java 实现将执行 Java native 版本在您的操作系统上执行的操作。

Here是对同一主题的更完整讨论。

关于python - Windows 7 是否自动为 Python 3 代码使用多处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571906/

相关文章:

python - 重新索引 Pandas 数据框多索引的子级别

.net - VS2008 on Win7 64-Bit : Debugging a Windows Service

node.js - 尝试在 win7 上安装 uglify.js 时出错

c++ - C/C++ Openmp : Is it possible for a thread to read corrupted data if another thread updates the data at the same time?

python - Ubuntu 上的 PyXML

python - 重构Django基于类的 View ,清理18个重复类。

c++ - 可以在 Windows 上创建受密码保护的 zip 文件的 C zip 库?

java - nofity的顺序All在生产者-消费者模式中

c - OpenMP 令人尴尬的并行循环,没有加速

python - 从各种数字范围的列表中找到所有可能的重叠和非重叠