zoukankan      html  css  js  c++  java
  • python 进程数据通信

    进程通信的第一种方式
    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()
  • 相关阅读:
    「疫期集训day11」沙漠
    「树形DP」洛谷P2607 [ZJOI2008]骑士
    「疫期集训day10」玫瑰
    「疫期集训day9」七月
    核心容器(概念)
    初识Spring
    IOC(控制反转思想)原型理论推导
    图片在上,文字在下并且等间距的三个菜单按钮
    编写登陆接口
    001使用gltf创建3d模型
  • 原文地址:https://www.cnblogs.com/qiujichu/p/10360318.html
Copyright © 2011-2022 走看看