python的进程通信

队列方式:

复制代码
from multiprocessing import Process, Queue
 
def put(queue_main, queue_sub):
    queue_sub.put('反馈')
    print('主进程消息:'+queue_main.get())
 
if __name__ == '__main__':
    queue_main = Queue()
    queue_main.put('通知')
    queue_sub = Queue()
    
    pro = Process(target=put, args=(queue_main,queue_sub,))
    pro.start()
    
    print('子进程消息:'+queue_sub.get())
    pro.join()
复制代码

 

效果:

 

 

 

管道方式:

复制代码
from multiprocessing import Process, Pipe
 
def show(child_conn):
    while True:
        print(child_conn.recv())
 
if __name__ == '__main__':
    parent_conn, child_conn = Pipe()
    
    parent_conn.send('父进程说话了1')
    parent_conn.send('父进程说话了2')
    
    chrild = Process(target=show, args=(child_conn,))
    chrild.start()
    #parent_conn.close()
    
    child_conn.send('子进程说话了1')
    print(parent_conn.recv())
    
    child_conn.send('子进程说话了2')
    print(parent_conn.recv())
    
    chrild.join()
复制代码

 

效果:

 

posted @   河北大学-徐小波  阅读(38)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起