python多进程(multiprocessing)

函数multiprocessing参数介绍:

(1)group:组别,一般默认为None

(2)target=:使用的对象函数名称

(3)args=:调用函数的参数,使用元组形式传入

(4)kwargs=:同args作用一样,但是传入参数的形式是字典

(5)name=:子进程的名称

(6)daemom=:守护进程

获取进程的pid、ppid、当前进程的名称:

import os   #导入os库

os.getpid():获得当前进程编号

os.getppid():获得当前进程的父进程编号

multiprocessing.process.current_process().name:获得当前进程的名称

其它方法:

进程名字.start() #开始运行进程

进程名字.join()  #使进程可以同步运行,就是等这个进程运行结束才运行下一个进程

主进程要在所有子进程运行完才能结束,如果想要主进程运行完成后也结束其子进程的运行可以使用两种方法

(1)守护进程参数daemon=True

(2)进程名.terminate() #销毁子进程

进程之间的数据传递方式:

因为多进程是独立开辟内存空间进行运行,所以变量之间是不能共享的,如果要进行共享则可以通过读写文件或者数据库进行传递。

综合练习题1:

# 使用多进程完成以下任务:
# 1.开辟两个子进程
# 2.子进程1设置为死循环, 每隔1秒打印一次"进程信息"
# 3.子进程2接收一个整数类型参数, 进程2循环的次数即为传入的整形数字, 每个1秒循环一次
# 4.子进程2结束的时候, 子进程1也跟着结束

import multiprocessing
import time
def func1():
    while True:
        print('func1')
        time.sleep(1)
def func2(n):
    for i in range(n):
        print('func2')
        time.sleep(1)
if __name__ == '__main__':
    p1 = multiprocessing.Process(target=func1,daemon=True)
    p2 = multiprocessing.Process(target=func2, args=(5,))
    p1.start()
    p2.start()
    p2.join()  # 等待 p2 完成

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值