进程间通信

#coding:utf-8

import time
import os
import multiprocessing
import json

class Work(object):
    def __init__(self,q):
        self.q=q

    def send(self,message):
        if not isinstance(message,str):
            message = json.dumps(message)
        self.q.put(message)

    def send_all(self):
        for i in range(20):
            self.q.put(i)
            time.sleep(1)

    def receive(self):
        while 1:
            result = self.q.get()
            try:
                res = json.loads(result)
            except:
                res = result
            print('recv is %s '% res)

if __name__ == '__main__':
    q = multiprocessing.Queue()
    work = Work(q)
    send = multiprocessing.Process(target=work.send,args=({'key':'value'},))
    recv = multiprocessing.Process(target=work.receive)
    send_all_p = multiprocessing.Process(target=work.send_all)


    send_all_p.start()
    send.start()
    recv.start()

    send_all_p.join()
    recv.terminate()

posted @ 2022-12-16 23:00  repinkply  阅读(17)  评论(0)    收藏  举报