码迷,mamicode.com
首页 > 编程语言 > 详细

python 进程数据通信

时间:2019-02-10 21:55:38      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:之间   roc   app   tar   不同   main   join   通信   proc   

进程通信的第一种方式
from
multiprocessing import Process,Queue def f(q): q.put([42,2,hello]) print(zi q id:, id(q)) # 进程的id不同 说明q队列是拷贝的 if __name__==__main__: q=Queue() print(main q id:,id(q)) # 在主进程下面创建的q # 两个进程的数据是相互独立的,两者之间没有关系 p_list=[] for i in range(3): p=Process(target=f,args=(q,)) p_list.append(p) p.start() print(q.get()) print(q.get()) print(q.get()) for i in p_list: i.join()

进程通信的第二种方式:

from multiprocessing import Process,Pipe

def f(conn):
    conn.send(约吗)
    conn.send(约吗)
    print(conn.recv())
    conn.close()
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()

 

 

from  multiprocessing import Process,Queue

def f(q):
q.put([42,2,‘hello‘])
print(‘zi q id:‘, id(q))
# 进程的id不同 说明q队列是拷贝的
if __name__==‘__main__‘:
q=Queue()
print(‘main q id:‘,id(q))
# 在主进程下面创建的q
# 两个进程的数据是相互独立的,两者之间没有关系
p_list=[]
for i in range(3):
p=Process(target=f,args=(q,))
p_list.append(p)
p.start()
print(q.get())
print(q.get())
print(q.get())
for i in p_list:
i.join()

python 进程数据通信

标签:之间   roc   app   tar   不同   main   join   通信   proc   

原文地址:https://www.cnblogs.com/qiujichu/p/10360318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!