python生产者和消费者-threading

from threading import Thread,Lock,Condition
from queue import Queue
import time

class Student:
    count=10
mutex=Condition()
def produce_fun(q):
    while True:
        with mutex:
            while q.count>=10:
                print("生产者正在等待1秒")
                mutex.wait()
            q.count += 1
            print("生产者成功生产,当前数量为:" + str(q.count))
            mutex.notifyAll()
            time.sleep(1)
def consume_fun(q,name):
    while True:
        with mutex:
            while q.count<=0:
                print("{}等待".format(name))
                mutex.wait()
            q.count -= 1
            print("{}正在消费,当前数量为:".format(name) + str(q.count))
            mutex.notifyAll()
            time.sleep(1)
if __name__ == '__main__':
    # my_queue=Queue(10)
    # for index in range(10):
    #     my_queue.put(1)
    s=Student()
    produce=Thread(name="生产者",target=produce_fun,args=(s,))
    consume1=Thread(name="消费者",target=consume_fun,args=(s,"消费者1"))
    consume2 = Thread(name="消费者", target=consume_fun, args=(s,"消费者2"))
    consume3 = Thread(name="消费者", target=consume_fun, args=(s, "消费者3"))
    produce.start()
    consume1.start()
    consume2.start()
    consume3.start()
    produce.join()
    consume1.join()
    consume2.join()
    consume3.join()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章