Communication between python processes

Communication between python processes

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# author:leo
# datetime:2019/5/28 10:15
# software: PyCharm
from multiprocessing import Process,Queue,Pipe
import time
def puts(q):
    i=0
    while True:
        q.put([i, None, 'ok'])
        i+=1
        time.sleep(2)
def gets(q):
    while True:
        if q.qsize():
            print(q.get())
        time.sleep(1)

def sets(conn):
    conn.send(['1','ok'])
    res=conn.recv()
    print(2)
    print(res)
    conn.close()

def revs(conn):
    res=conn.recv()
    print(1)
    print(res)
    conn.send(['2','ok'])
    conn.close()
if __name__ == '__main__':
    q = Queue()
    for i in range(2):
        p=Process(target=puts,args=(q,))
        p.start()
    for i in range(5):
        p=Process(target=gets,args=(q,))
        p.start()
    one_conn,two_conn= Pipe()
    for i in range(2):
        p=Process(target=sets,args=(two_conn,))
        p.start()
    for i in range(2):
        p=Process(target=revs,args=(one_conn,))
        p.start()

 

Guess you like

Origin www.cnblogs.com/leo0362/p/10935681.html