1. 程式人生 > >python 多程序間通訊 訊息佇列

python 多程序間通訊 訊息佇列

import multiprocessing

import time


#使用佇列,將訊息寫進佇列,需要的程序到佇列取
#佇列由父程序建立,子程序共享佇列
def write(qe):
    print("啟動子程序 write")
    for chr in ['A','B','C','D','E']:
        qe.put(chr)
        time.sleep(1)
    print("結束子程序 write")
def read(qe):
    print("啟動子程序 read")
    while 1:
        value = qe.get(True)
        print("讀取:"+value)
    print("結束子程序 read")

if __name__ == '__main__':
    #父程序建立佇列
    qe = multiprocessing.Queue()
    pw = multiprocessing.Process(target=write,args=[qe])  #這裡必須用[qe],不能用(qe)
    pr = multiprocessing.Process(target=read,args=[qe])

    pw.start()
    pr.start()

    pw.join()
    pr.terminate()  #強制結束

    print("父程序結束")