资讯专栏INFORMATION COLUMN

Python进程专题1:fork():创建子进程、getpid()、getppid()

galois / 1896人阅读

摘要:程序执行到时,操作系统会创建一个新进程子进程,并把父进程的所有信息赋值到子进程中。多次可发现父子进程执行顺序没有规律,完全取决于操作系统的调度算法。

上一篇文章: Python进程专题总览篇
下一篇文章:Python进程专题2:multiprocessing创建进程
该方法只能在unix/Linux/Mac上运行,windows不可以运行。

程序执行到fork()时,操作系统会创建一个新进程(子进程),并把父进程的所有信息赋值到子进程中。

这个方法很特殊,会有两次返回,分别在子进程和父进程返回一次,子进程永远返回0,父进程返回进程的id.

getpid():返回当前进程的id

getppid():返回当前进程父进程的id。

实例:

import os
id=os.fork()
index=0
if id<0:
    print("子进程创建失败了")
elif id==0:
    index+=1
    print("我是子进程(%d),我的父进程是:%d,index=%d"%(os.getpid(),os.getppid(),index))
else:
    index += 1
    print("我是父进程:%d,我的子进程是:%d,index=%d"%(os.getpid(),id,index))

结果:

我是父进程:9735,我的子进程是:9736,index=1
我是子进程(9736),我的父进程是:9735,index=1

从上面实例也可以看出:每个进程的所有数据(包括全局变量)都各持一份,互不影响。

多次fork()可发现:父子进程执行顺序没有规律,完全取决于操作系统的调度算法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42331.html

相关文章

  • Python进程专题2:multiprocessing进程

    摘要:类常用属性布尔值,指示进程是否是后台进程。当创建它的进程终止时,后台进程会自动终止。进程的整数退出指令。如果进程仍然在运行,它的值为,如果值为负数,就表示进程由信号所终止。 上一篇文章:Python进程专题1:fork():创建子进程、getpid()、getppid()下一篇文章:Python进程专题3:继承Process来创建进程 由于fork()无法对Windows使用,而py...

    骞讳护 评论0 收藏0
  • Python进程实践

    摘要:多进程的方式可以增加脚本的并发处理能力,支持这种多进程的编程方式在类系统中,的模块内置了函数用以创建子进程方式创建子进程执行结果从结果可以看到,从开始,下面的部分代码运行了两次,第一次是父进程运行,第二次是子进程运行,且子进程的的结果总是, 多进程的方式可以增加脚本的并发处理能力, python 支持这种多进程的编程方式 在类unix系统中, python的os 模块内置了fork 函...

    makeFoxPlay 评论0 收藏0
  • Python_系统编程

    摘要:主进程会等待所有的子进程先结束,然后再结束主进程。关闭进程池,关闭后实例不再接收新的请求等待实例中的所有子进程执行完毕,主进程才会退出,必须放在语句之后。主进程一般都用来等待,任务在子进程中执行。 多任务:同一个时间段中,执行多个函数/运行多个程序. 操作系统可以同时运行多个任务:操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,...

    wuaiqiu 评论0 收藏0
  • python学习笔记 - fork, multiprocessing

    摘要:近年来,人工智能的兴起使得更加火爆了。获取当前进程父进程的。但是唯一遗憾的是,函数只能在系统中使用,不能在系统中使用。因此在下,需要将其包含在中。则是立即返回一个可迭代对象。则是返回可迭代函数。 Python一直是一门对初学者非常友好的语言,在数据分析、Web 开发、网络安全、网络爬虫等方面应用广泛。近年来,人工智能的兴起使得 Python 更加火爆了。 我们在处理大量数据或者需要快速...

    littleGrow 评论0 收藏0
  • Python进程专题总览篇

    摘要:一个进程,通常是从上往下逐条语句执行,这对正常人来说都比较好理解,但是当遇到多进程时,虽然在每个进程内还是逐句执行,但是这个应用程序,体现出出来的就不是逐句执行了,这也是多进程多线程难以理解的原因。 上一篇文章:Python垃圾回收详解下一篇文章:Python进程专题1:fork():创建子进程、getpid()、getppid() 多进程就是同时进行多项任务,一个程序就可以看成是一...

    HtmlCssJs 评论0 收藏0

发表评论

0条评论

galois

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<