python 多进程 multiprocessing.Process 的 join 和 start 方法

python 多进程 multiprocessing.Process 的 join 和 start 方法

multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象。

  1. start() 方法:

    start方法是进程启动,这样创建的进程比fork还要快

from multiprocessing import Process
import time
import os
def print_value(data):
    """
    打印数据
    :param data:
    :return:
    """
    print("我已经打印:",data)
    time.sleep(3)

if __name__=="__main__":
    print('Parent process %s.' % os.getpid())
    p= Process(target=print_value,args=('222',))
    print("Process will start")
    p.start()
    print("end Process")
    
    

运行结果:

Parent process 10924.
Process will start
end Process
我已经打印: 222

Process finished with exit code 0

2.join() 方法:

join()方法可以等待子进程结束后再继续往下运行(更准确地说,在当前位置阻塞主进程,带执行join()的进程结束后再继续执行主进程),通常用于进程间的同步。(进一步地解释,哪个子进程调用了join方法,主进程就要等该子进程执行完后才能继续向下执行,具体可见下边的分析图)

from multiprocessing import Process
import time
import os
def print_value(data):
    """
    打印数据
    :param data:
    :return:
    """
    print("我已经打印:",data)
    time.sleep(3)

if __name__=="__main__":
    print('Parent process %s.' % os.getpid())
    p= Process(target=print_value,args=('222',))
    print("Process will start")
    p.start()
    p.join()
    print("end Process")

运行结果:

Parent process 13396.
Process will start
我已经打印: 222
end Process

Process finished with exit code 0

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值