我有 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/