Python 中的进程实现,通过 subprocess/multiprocessing 模块编写。
Python 中的进程
在 Python 中,通过 Python 解释器执行的任何代码,首先本身都是一个进程,比如:
~# python test.py
Python 解释器会自动启动一个进程,并加载 test.py 中的代码执行。
我们这里研究的进程是:如何在这样的过程中,创建另一个附加进程,或者说如何创建“子进程”。也就是想办法“手动”创建一个进程,而不是自动生成。
只有能创建“子进程”了,我们才能手动编些进程来执行额外的代码,而不是Python 自动创建,自动执行,有助于我们合理和灵活的利用多 CPU 的情形。
子进程的启动方法
在 Python 代码中,启动“子进程” 的方法,包括了:
python中创建子进程的方法:
在新的 Python 版本中,比如 Python 2.4 以及以上,都可以使用 subprocess 来代替如上旧的使用方法。
总结:
Python 中使用进程,从应用层面讲,简单可以理解为:
执行额外的命令/可执行文件
在主进程中,以子进程 的方式启动 Python 代码
第一种情况,我们在 Python 2.4 之后的版本,通过 subprocess 来完成,并且尽量避免使用旧有的内置函数。
第二种情况,大多使用 multiprocessing 来完成,这对于规避 GIL 的问题,利用多 CPU 有好处,当然如果是个简单程序,或者并不是一个计算密集型,而是 IO 密集型的并发情形,只能选择线程/多线程。
网友评论