python 筆記 之 Queue消息隊列

'''
消息隊列

生產者,消費者
'''
import time
from multiprocessing import Queue,Pipe
from threading import Thread

'''
一個是write生產者
一個是read消費者
建立一個隊列 q = Queue()
發消息: q.put()
收消息: q.get()
'''

#生產者
def producer(q):
    print("start producer")
    for i in range(10):
        q.put(i)
        time.sleep(0.3)
    print("end producer")

#消費者
def customer(q):
    print("start customer")
    #想辦法結束,或者永不結束
    while 1:
        data = q.get()
        print("customer data {0}".format(data))
        time.sleep(0.3)
    print("end customer")


if __name__ == '__main__':
    q = Queue()
    p = Thread(target=producer,args=(q,))
    c = Thread(target=customer,args=(q,))
    p.start()
    c.start()
    p.join() #p執行完成後,等待其餘線程執行完成
相關文章
相關標籤/搜索