Python中启动进程的三种方法分别是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1500个文字,预计阅读时间需要6分钟。
在前面章节中,已详细介绍了创建进程的两种方法,即使用`os.fork()`和`Process`类。其中:
- 使用`os.fork()`创建的子进程会从创建位置开始执行,执行完毕后继续执行主程序的所有后续代码。- `os.fork()`创建的子进程将从创建位置处开始执行,执行后继续执行父进程的后续代码。
前面章节中,已经详解介绍了 2 种创建进程的方法,即分别使用 os.fork() 和 Process 类来创建进程。其中:- 使用 os.fork() 函数创建的子进程,会从创建位置处开始,执行后续所有的程序,主进程如何执行,则子进程就如何执行;
-
而使用 Process 类创建的进程,则仅会执行
if "__name__"="__main__"之外的可执行代码以及该类构造方法中 target 参数指定的函数(使用 Process 子类创建的进程,只能执行重写的 run() 方法)。
实际上,Python 创建的子进程执行的内容,和启动该进程的方式有关。而根据不同的平台,启动进程的方式大致可分为以下 3 种:
- spawn:使用此方式启动的进程,只会执行和 target 参数或者 run() 方法相关的代码。Windows 平台只能使用此方法,事实上该平台默认使用的也是该启动方式。相比其他两种方式,此方式启动进程的效率最低。
- fork:使用此方式启动的进程,基本等同于主进程(即主进程拥有的资源,该子进程全都有)。因此,该子进程会从创建位置起,和主进程一样执行程序中的代码。注意,此启动方式仅适用于 UNIX 平台,os.fork() 创建的进程就是采用此方式启动的。
本文共计1500个文字,预计阅读时间需要6分钟。
在前面章节中,已详细介绍了创建进程的两种方法,即使用`os.fork()`和`Process`类。其中:
- 使用`os.fork()`创建的子进程会从创建位置开始执行,执行完毕后继续执行主程序的所有后续代码。- `os.fork()`创建的子进程将从创建位置处开始执行,执行后继续执行父进程的后续代码。
前面章节中,已经详解介绍了 2 种创建进程的方法,即分别使用 os.fork() 和 Process 类来创建进程。其中:- 使用 os.fork() 函数创建的子进程,会从创建位置处开始,执行后续所有的程序,主进程如何执行,则子进程就如何执行;
-
而使用 Process 类创建的进程,则仅会执行
if "__name__"="__main__"之外的可执行代码以及该类构造方法中 target 参数指定的函数(使用 Process 子类创建的进程,只能执行重写的 run() 方法)。
实际上,Python 创建的子进程执行的内容,和启动该进程的方式有关。而根据不同的平台,启动进程的方式大致可分为以下 3 种:
- spawn:使用此方式启动的进程,只会执行和 target 参数或者 run() 方法相关的代码。Windows 平台只能使用此方法,事实上该平台默认使用的也是该启动方式。相比其他两种方式,此方式启动进程的效率最低。
- fork:使用此方式启动的进程,基本等同于主进程(即主进程拥有的资源,该子进程全都有)。因此,该子进程会从创建位置起,和主进程一样执行程序中的代码。注意,此启动方式仅适用于 UNIX 平台,os.fork() 创建的进程就是采用此方式启动的。

