1:事件機制共享隊列:
利用消息機制在兩個隊列中,通過傳遞消息,實現(xiàn)可以控制的生產(chǎn)者消費者問題
要求:readthread讀時,writethread不能寫;writethread寫時,readthread不能讀。
基本方法 時間類(Event)
set:設(shè)置事件。將標志位設(shè)為True。
wait:等待事件。會將當前線程阻塞,直到標志位變?yōu)門rue。
clear:清除事件。將標志位設(shè)為False。
set() clear() 函數(shù)的交替執(zhí)行 也就是消息傳遞的本質(zhì)
模版:
基本code # 事件消息機制 import queue import threading import random from threading import Event from threading import Thread class WriteThread(Thread): def __init__(self,q,wt,rt): super().__init__(); self.queue=q; self.rt=rt; self.wt=wt; def run(self): self.rt.set() self.wt.wait(); self.wt.clear(); class ReadThread(Thread): def __init__(self,q,wt,rt): super().__init__(); self.queue=q; self.rt=rt; self.wt=wt; def run(self): while True: self.rt.wait(); self.wt.wait(); self.wt.clear()