【发布时间】:2018-09-12 15:43:09
【问题描述】:
似乎subprocess.Popen() 和os.fork() 都能够创建子进程。但是,我想知道两者之间有什么区别。你什么时候用哪一个?我尝试查看他们的源代码,但在我的机器上找不到 fork() 的源代码,而且 Popen 在 Unix 机器上的工作方式并不完全清楚。
有人可以详细说明吗?
谢谢
【问题讨论】:
-
区别在于打开一个进程和分叉它之间的实际区别。看看:stackoverflow.com/questions/2483041/…
-
@Rohi 您的链接解释了线程和进程之间的区别。和这个问题无关。
-
如果您了解进程是什么(这相当简单),那么您真正需要的是阅读 fork 的作用以了解两者之间的区别(答案中对此进行了很好的解释)。所以我不同意@melpomene
-
@Rohi 你是什么意思,区别?
fork是在 Unix 上创建进程的系统调用。 -
我的意思是非 unix 方式与 unix 方式之间的区别。非unix方式非常简单,不需要过多解释。 @melpomene