zoukankan      html  css  js  c++  java
  • 多进程-Pipe和Manager数据共享和传递

    pipe.py#多进程数据传递接收和发送(类似socket)

    from  multiprocessing import Process,Pipe
    
    def f(conn):
        conn.send([42,None,"hello from child"])
        conn.send([42, None, "hello from child2"])
        print("from parent:",conn.recv())
    if __name__ == '__main__':
        parent_conn, child_conn= Pipe()
        p=Process(target=f,args=(child_conn,))
        p.start()
        print(parent_conn.recv())
        print(parent_conn.recv())
        parent_conn.send("狗胖咬死你!")
        p.join()
    

     manger.py#多进程之间数据共享和传递(同时修改一份数据)

    from multiprocessing import Process,Manager
    import os
    def f(d,l):
        d[os.getpid()]=os.getpid()
        l.append(os.getpid())
        print(l)
    
    if __name__ =="__main__":
        with Manager() as manager:
            d= manager.dict()#生成一个字典可在多个进程中共享一份数据和传递
    
            l =manager.list(range(5))#生成一个列表可在多个进程中共享一份数据和传递
            p_list =[]
            for i in range(10):
                p =Process(target=f,args=(d,l))
                p.start()
                p_list.append(p)
            for res in p_list:
                res.join()
    
            print(d)
            print(l)
    
  • 相关阅读:
    操作系统学习五部曲
    由实模式进入保护模式
    extends && implements
    <mvc:annotation-driven>
    集合类关系
    Servlet8
    SprigMVC基础测试
    (转载)synchronized代码块
    jetty与tomcat
    输入输出流总结
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/9222093.html
Copyright © 2011-2022 走看看