知行编程网知行编程网  2023-01-04 03:00 知行编程网 隐藏边栏  10 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python fork方法:创建新进程的相关知识,包括python文本进度条starting...done,以及python多进程加快for循环这些编程知识,希望对大家有参考作用。

Python fork方法:创建一个新进程

除了多线程编程,Python 还支持使用多进程进行并发编程。

Python的os模块提供了一个fork()方法,可以fork出一个子进程。简单来说,fork()方法的作用就是程序会启动两个进程(一个是父进程,一个是fork出来的子进程)执行所有从os.fork()开始的代码。

fork() 方法不接受任何参数,并有一个返回值指示哪个进程正在执行:

如果 fork() 方法返回 0,则表明是 fork 出来的子进程在执行。

如果 fork() 方法返回非零,则表明父进程正在执行,该方法从 fork() 返回子进程的进程 ID。

下面程序示范了使用 fork() 方法创建新进程的过程:

import os

print('父进程(%s)开始执行' % os.getpid())
# 开始fork一个子进程
# 从这行代码开始,下面代码都会被两个进程执行
pid = os.fork()
print('进程进入:%s' % os.getpid())
# 如果pid为0,表明子进程
if pid == 0:
    print('子进程,其ID为 (%s), 父进程ID为 (%s)' % (os.getpid(), os.getppid()))
else:
    print('我 (%s) 创建的子进程ID为 (%s).' % (os.getpid(), pid))
print('进程结束:%s' % os.getpid())

上面的程序fork出一个子进程,也就是说程序会使用父进程和子进程来执行从这行代码开始的代码。

在Linux或者Mac OS X系统上运行上面的程序(Windows不支持fork()方法,所以在Windows系统上运行上面的程序会报锚),可以看到如下运行结果:

父进程(1795)开始执行
进程进入:1795
我(1795)创建的子进程ID 为(1796).
进程结束:1795
进程进入:1796
子进程,其ID 为(1796),父进程ID 为(1795)
进程结束: 1796

从上面的运行结果我们可以看出,此时程序使用了两个进程来执行从“进程入口”到“进程结束”的代码,这就是os.fork()方法的作用。

在实际编程中,程序可以通过fork()方法创建一个子进程,然后通过判断fork()方法的返回值来判断程序是否正在执行子进程,即将需要执行的任务放入be concurrently executed in if pid= =0: 在条件执行体中,可以启动多个子进程执行并发任务。

需要注意的是,os.fork() 方法在 Windows 系统上无效,只在 UNIX 及类 UNIX 系统上有效,UNIX 及类 UNIX 系统包括 UNIX、Linux 和 Mac OS X。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享