Python3之线程Queue实现生产者消费者模型

生产者消费者模型

from threading import Thread
import queue, time

q = queue.Queue()


def consumer():
    while 1:
        res = q.get()
        time.sleep(2)
        print('消费者消费了\033[35m%s\033[0m' % res)
        q.task_done()


def producer_0():
    for i in range(5):
        q.put(i)
        print('生产者0生产了\033[35m%s\033[0m' % i)
    q.join()


def producer_1():
    for i in range(5):
        q.put(i)
        print('生产者1生产了\033[32m%s\033[0m' % i)
    q.join()


def producer_2():
    for i in range(5):
        q.put(i)
        print('生产者2生产了\033[33m%s\033[0m' % i)
    q.join()


if __name__ == '__main__':
    t0 = Thread(target=producer_0, )
    t1 = Thread(target=producer_1, )
    t2 = Thread(target=producer_2, )

    t0.start()
    t1.start()
    t2.start()
    consumer_t = Thread(target=consumer, )
    consumer_t.daemon = True
    consumer_t.start()
    t0.join()
    t1.join()
    t2.join()
    print('主线程~')

你可能感兴趣的:(Python)