美文网首页
multiprocessing exchanging

multiprocessing exchanging

作者: xncode | 来源:发表于2017-09-14 17:33 被阅读0次

数据交互

Queues

from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print q.get()    # prints "[42, None, 'hello']"
    p.join()

Pipes

返回的是一对连接的对象,通过pipe,默认是双向的。

from multiprocessing import Process, Pipe

def f(conn):
    conn.send([42, None, 'hello'])
    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']"
    p.join()

但是如果两个进程使用同一个conn,同时读写时会有问题。

相关文章

网友评论

      本文标题:multiprocessing exchanging

      本文链接:https://www.haomeiwen.com/subject/lfgdsxtx.html