zoukankan      html  css  js  c++  java
  • python Manager and Pipe 简单操作

    Manager:

    from multiprocessing import Process, Manager
    import os
    
    def f(d, l):
        d[1] = '1'
        d['2'] = 2
        d[0.25] = None
        l.append(os.getpid())
        print(l)
    
    
    if __name__ == '__main__':
        with Manager() as manager:
            d = manager.dict()#生成一个字典,可在多个进程间共享和传递
    
            l = manager.list(range(5))#生成一个列表,可在多个进程间共享和传递
            print(l)
            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)
    manager使用

     pipe(管道):

    from multiprocessing import Process, Pipe
    
    
    def f(conn):
        conn.send([42, None, 'hello'])#发送给parent_conn消息
        print('from parent:',conn.recv())#接受parent的消息
        conn.close()
    
    
    if __name__ == '__main__':
        parent_conn, child_conn = Pipe()#管道生成会返回两个对象
        p = Process(target=f, args=(child_conn,))
        p.start()
        print(parent_conn.recv())  # prints "[42, None, 'hello']",接受child_conn发送的消息
        parent_conn.send('hello childs')
        p.join()
  • 相关阅读:
    超赞!不容错过的5款实用网页开发和设计工具
    如何从平面设计转行到UI设计?
    线段树
    RMQ
    Splay
    Treap
    *模板--矩阵
    最小生成树
    hash
    ac自动机
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13737718.html
Copyright © 2011-2022 走看看