在看了比斯利書中的例子后,我正在和我的朋友交談class ActorExit(Exception): passclass Actor: def __init__(self): self._mailbox = Queue() def send(self, msg): self._mailbox.put(msg) def recv(self): msg = self._mailbox.get() if msg is ActorExit: raise ActorExit() return msg def close(self): self.send(ActorExit) def start(self): self._terminated = Event() t = Thread(target=self._bootstrap) t.daemon = True t.start() def _bootstrap(self): try: self.run() except ActorExit: pass finally: self._terminated.set() def join(self): self._terminated.wait() def run(self): while True: msg = self.recv()class PrintActor(Actor): def run(self): while True: msg = self.recv() print('Got:', msg)我的朋友認為 Event 的唯一目的是阻塞主線程,直到另一個線程執(zhí)行設(shè)置操作。真的嗎?我們?nèi)绾斡^察線程執(zhí)行?
添加回答
舉報
0/150
提交
取消