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执行完成后,等待其他线程执行完成

猜你喜欢

转载自my.oschina.net/u/3824134/blog/1819108