线程_apply堵塞式

'''
创建三个进程,让三个进程分别执行功能,关闭进程
Pool 创建  ,apply执行 , close,join 关闭进程
'''
from multiprocessing import Pool
import os,time,random

def worker(msg):
    # 创建一个函数,用来使进程进行执行
    time_start = time.time()
    print("%s 号进程开始执行,进程号为 %d"%(msg,os.getpid()))
    # 使用os.getpid()获取子进程号
    # os.getppid()返回父进程号
    time.sleep(random.random()*2)
    time_end = time.time()
    print(msg,"号进程执行完毕,耗时%0.2f"%(time_end-time_start))
#     计算运行时间

if __name__ == '__main__':

    po = Pool(3)#创建三个进程
    print("进程开始")
    for i in range(3):
        # 使用for循环,运行刚刚创建的进程
        po.apply(worker,(i,))#进程池调用方式apply堵塞式
    #     第一个参数为函数名,第二个参数为元组类型的参数(函数运行会用到的形参)
    #只有当进程执行完退出后,才会新创建子进程来调用请求

    po.close()# 关闭进程池,关闭后po不再接收新的请求
    # 先使用进程的close函数关闭,后使用join函数进行等待
    po.join() # 等待po中所有子进程执行完成,必须放在close语句之后

    print("进程结束")


    '''创建->apply应用->close关闭->join等待结束'''

2020-05-07

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12845503.html