定义一个Actor任务-gb 50150-2016电气装置安装工程电气设备交接试验标准

12.10定义一个Actor任务问题You’d like to define tasks with behavior similar to “actors” in the so-called “actor model.”解决方案The “actor model” is one of the oldest and most simple approaches to concurrency and distributed computing. In fact, its underlying simplicity is part of its appeal. In a nutshell, an actor is a concurrently executing task that simply acts upon messages sent to it. In response to these messages, it may decide to send further messages to other actors. Communication with actors is one way and asynchronous. Thus, the sender of a message does not know when a message actually gets delivered, nor does it receive a response or acknowledgment that the message has been processed. Actors are straightforward to define using a combination of a thread and a queue. For example: from queue import Queue from threading import Thread, Event # Sentinel used for shutdown class ActorExit(Exception): pass class Actor: def __init__(self): self._mailbox = Queue() def send(self, msg): ‘’’ Send a message to the actor ‘’’ self._mailbox.put(msg) def recv(self): ‘’’ Receive an incoming message ‘’’ msg = self._mailbox.get() if msg is ActorExit: raise ActorExit() return msg
pdf 文件大小:4.84MB