Python 中什么时候创建子进程?
When is a Child process created in Python?
我在 Coursera 上浏览了一些 material,他们解释说,当使用子进程命令时,会为子进程创建一个辅助环境(子进程在他们的示例中与子进程同义使用)。 Parent 进程被锁定,直到 Child 进程完成,然后控制流返回给 Parent。
他们给出的例子如下:
import subprocess
subprocess.run(["sleep", "2"])
以上代码在Python解释器中执行,执行sleep命令后父进程(python解释器)被锁定,直到子进程(命令subprocess.run(["sleep", "2"])
) 完成了。
下面的代码产生相同的结果(据我所知)
import time
time.sleep(2)
解释器被锁定,直到 time.sleep(2)
完成。
这个实例中是否也创建了子进程? Python 中什么时候创建子进程?
是否为time.sleep
的执行创建子进程在技术上是语言的实现细节。任何物有所值的实现,例如最常见的 CPython 实现,都不会创建一个单独的进程来休眠。
我在 Coursera 上浏览了一些 material,他们解释说,当使用子进程命令时,会为子进程创建一个辅助环境(子进程在他们的示例中与子进程同义使用)。 Parent 进程被锁定,直到 Child 进程完成,然后控制流返回给 Parent。
他们给出的例子如下:
import subprocess
subprocess.run(["sleep", "2"])
以上代码在Python解释器中执行,执行sleep命令后父进程(python解释器)被锁定,直到子进程(命令subprocess.run(["sleep", "2"])
) 完成了。
下面的代码产生相同的结果(据我所知)
import time
time.sleep(2)
解释器被锁定,直到 time.sleep(2)
完成。
这个实例中是否也创建了子进程? Python 中什么时候创建子进程?
是否为time.sleep
的执行创建子进程在技术上是语言的实现细节。任何物有所值的实现,例如最常见的 CPython 实现,都不会创建一个单独的进程来休眠。