python 系统编程之创建进程 create process

一、forking 进程

通过fork产生的进程有以下几个特点:

  • 是一个进程的克隆。
  • 创建的进程独立于父进程单独存在。
  • 线程在调用fork()那那点被复制执行。
    • 在子线程中返回0。
    • 在父线程中返回子线程的pid
    • 子线程的PID不同于父线程。

二、代码示例

#!/usr/bin/env python

import os

def child_process():
    print "I am the child process and my PID is : %d" % os.getpid()

    print "teh child is exiting."


def parent_process():
    print "I am the parent process whit PID  :%d" % os.getpid()

    childId = os.fork()

    if childId == 0:
        #在子进程中
        child_process()
    else:
        #在父进程中
        print "inside the parent process"
        print "my child's pid is : %d" % childId

    while True:
        pass


parent_process()

res

子线程结束后,父线程依然在运行,并没有推出。

三、量产新的线程

  • os.exec* 系列函数
    • os.execl
    • os.execle
    • os.execvp
  • 子进程覆盖父进程
    exec

可以发现通过这种方式创建的进程是覆盖掉了父进程,当子进程结束时,父进程也跟着结束了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值