并行程序-进程(一)

本文介绍了Python在Linux/Unix系统中利用`os.fork()`创建进程,以及在跨平台环境下使用`multiprocessing`模块的`Process`类。详细讲解了`Process`的`join()`方法、语法结构,以及如何使用进程池`Pool()`来管理多个子进程,重点在于进程的同步和异步执行策略。
摘要由CSDN通过智能技术生成

fork

fork()是os模块里面的系统函数,只适用于linux/unix系统,作用是程序运行到os.fork()命令时会产生一个新的进程(子进程),子进程程序和父进程完全相同。同时fork()函数会有一个返回值,这个返回值代表的是子进程的id,在父进程中这个值是大于零的,在子进程中一定等于零。

import os

ret = os.fork()
print(ret)
if ret>0:
    print("---父进程--%d-"%os.getpid())
else:
    print("---子进程---%d--父进程--%d-"%(os.getpid(),os.getppid()))

其中,os.getpid()是获取当前进程号,os.getppid()是子进程获取父进程的id。下面是运行结果:

结果说明子进程的id为fork的返回值

这里的PID就是上边说的id
在这里插入图片描述

multiprocessing

fork()只能用在linux/unix中,那如果是windows呢?multiprocessing模块里面提供了一个Process类,需要将进程的定义执行语句放在if name=="main"中。

from multiprocessing import Process
import time

#if __name__ == '__main__':
def test():
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值