zoukankan      html  css  js  c++  java
  • python多进程并行multiprocessing返回子进程结果

    import multiprocessing as mp
    import time
    import multiprocessing as mp
    import time
    from multiprocessing import Manager

    def job1(i,return_dict):

    v=0
    for i in range(100):
    time.sleep(0.1)
    v+= i # 获取共享内存
    #print(v,end=" ")
    return_dict[i] = v
    print("job1完成")

    def job2(i,return_dict):
    v=1
    for i in range(100):
    time.sleep(0.1)
    v+= i # 获取共享内存
    # print(v,end=" ")
    return_dict[i] = v
    print("job2完成")

    if __name__=='__main__':
    t1 = time.time()
    manager = Manager()
    return_dict1= manager.dict()
    return_dict2 = manager.dict()
    return_dict3 = manager.dict()
    return_dict4 = manager.dict()
    # p1 = mp.Process(target=job1, args=(0,return_dict1)) # 需要将lock传入
    # p2 = mp.Process(target=job2, args=(0,return_dict2))
    # p3 = mp.Process(target=job1, args=(0, return_dict3)) # 需要将lock传入
    # p4= mp.Process(target=job2, args=(0, return_dict4))
    # p1.start()
    # p2.start()
    # p3.start()
    # p4.start()
    # p1.join()
    # print(return_dict1.values())
    # p2.join()
    # print(return_dict2.values())
    # p3.join()
    # print(return_dict3.values())
    # p4.join()
    # print(return_dict4.values())
    # #print(q.get())
    # t2=time.time()
    # print("时间为:",t2-t1)

    job1(1,return_dict1)
    job2(2,return_dict2)
    job1(1, return_dict3)
    job2(2, return_dict4)
    print(return_dict1.values()[0])
    print(return_dict2.values()[0])
    print(return_dict3.values()[0])
    print(return_dict4.values()[0])
    t2=time.time()
    print("时间为:",t2-t1)




    import multiprocessing
    from multiprocessing import Manager
    def worker(procnum, return_dict):
    '''worker function'''
    print(str(procnum) + ' represent!')
    return_dict[procnum] = procnum

    #多进程实现结果
    import time
    if __name__ == '__main__':
    manager = Manager()
    # return_list = manager.list() 也可以使用列表list
    return_dict = manager.dict()
    jobs = []
    t1=time.time()
    for i in range(5):
    p = multiprocessing.Process(target=worker, args=(i,return_dict))
    jobs.append(p)
    p.start()
    for proc in jobs:
    proc.join()
    print(return_dict.values())
  • 相关阅读:
    序列化与反序列化
    SQL Server 中常见的十张系统表
    DataGridView的18中用法
    文件操作
    数据库的学习
    GUI图形图像编程主要技术的学习梳理
    软件研发过程中常用图形总结
    windows10 升级1803后,远程错误提示“出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正”的解决办法
    SQLServer中按照任意分钟(5分钟、10分钟)分组统计数据
    支付宝APP支付,提示代码 ALIN10070
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/13493971.html
Copyright © 2011-2022 走看看