class MsgProducer(Thread):
def __init__(self,name: str,count: int,queue: Queue):
super().__init__()
self.setName(name)
self.count = count
self.queue = queue
def run(self) -> None:
for n in range(self.count):
msg = f"{self.getName()}--{n}"
self.queue.put(msg,block=True)
class MsgConsumer(Thread):
def __init__(self,name: str,queue: Queue):
super().__init__()
self.setName(name)
self.queue = queue
self.daemon = True
def run(self) -> None:
while True:
msg = self.queue.get(block=True)
print(f"{self.getName()}--{msg}\n",end="")
queue = Queue(3)
threads = list()
threads.append(MsgProducer("PA",10,queue))
threads.append(MsgProducer("PB",10,queue))
threads.append(MsgProducer("PC",10,queue))
threads.append(MsgConsumer("CA",queue))
threads.append(MsgConsumer("CB",queue))
for t in threads:
t.start()
python 生产者和消费者的多线程实例
于 2024-01-05 21:10:08 首次发布