为什么Python的子流程模块称为那个,而不仅仅是“流程”?

时间:2018-12-18 13:01:34

标签: python subprocess

我是线程和进程的新手。我一直在尝试了解asyncio。在Doug Hellinger's Python Module of the Week section of Concurrency上研究asyncio时,我遇到了multiprocessingthreadingsignalsubprocess模块。

我一直想知道为什么这样命名subprocess模块。为什么模块不称为进程。 “ sub”(在下文中的含义)是什么?

修改:忘记添加

有一个Popen类,我认为'P'代表过程。 Github code comment说:

  

Popen(...):在新进程中灵活执行命令的类

是否不存在Popen类,请给出更多理由来调用模块process而不是subprocess

2 个答案:

答案 0 :(得分:2)

大多数操作系统中的进程形成父子关系。由另一个进程创建的进程称为该进程的child processes or subprocesses

  

计算中的子流程是由另一个创建的流程   流程(父流程)。此技术与多任务处理有关   操作系统,有时称为子进程或   传统上是子任务

Python subprocess模块提供了创建新的子进程的功能(即,使用此模块创建的每个进程都是您的Python程序的子进程):

  

子流程模块允许您生成新流程,连接到   他们的输入/输出/错误管道,并获取他们的返回码。

它不处理任意进程,因此将其命名为subprocess而不是仅仅process是有意义的。

答案 1 :(得分:1)

  

子进程提供了用于创建辅助进程并与其进行通信的API。

模块名称中的“ sub”是指您将在此处开始的所有进程都是正在运行的Python进程的子进程。它们存在是为了支持您的Python代码。