python - GIL 是否会影响单独终端窗口中 python 脚本的并行处理?

标签 python python-3.x terminal parallel-processing gil

我正在尝试理解Python的GIL。我最近有一项作业,必须比较在多个输入文件上使用不同时间复杂度的不同算法执行的特定任务的执行时间。我运行了一个 python 脚本来执行相同的操作,但我在 macOS 上使用单独的终端窗口为不同的输入文件运行相同的 python 脚本。

我还在一个终端窗口中为每个输入文件一个接一个地运行了这一切。与以前的多个窗口方法相比,每次执行的 CPU 时间更低,每个程序花费两倍的时间但同时运行。 (注意:之前的方法有 4 个终端窗口,并且 python 脚本仅运行在 macOS 上使用 clang 编译的 a.out 可执行文件,并将输出存储在不同的文件中)。

谁能解释为什么并行运行它们会导致每个程序变慢?它们是否在单独的内核上运行,或者 GIL 是否导致每个程序比我在一个终端窗口中一次运行一个程序慢?

最佳答案

每个终端窗口都会启动一个新的Python解释器,每个解释器都有自己的GIL。差异可能是由于操作系统级别对某些资源的争用(磁盘 I/O、内存、CPU 周期)。

关于python - GIL 是否会影响单独终端窗口中 python 脚本的并行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42757209/

相关文章:

python .replace() 正则表达式

python - 防止装饰器在Python中的同一个函数上使用两次

python-3.x - 现在如何安装 Visual Studio 2015 PlatformSDK?

java - 如何在终端中杀死这个 tomcat 进程?

linux - virsh destroy 和 virsh undefine 有什么区别

c++ - 从下拉框中选择不同的项目时更改选项卡小部件的 currentIndex()

python - pygobject 中无响应的拖放

python - 如何检查输入是否是Python中的自然数?

python日志记录过滤器

macos - 在命令行中运行docker镜像:复制+粘贴代码后遇到错误