μJavaActors 是 actor 系统的一个简单的 Java 实现。只有 1,200 行代码,μJavaActors 虽然很小,但很强大。在下面的练习中,您将学习如何使用 μJavaActors 动态地创建和管理 actor,将消息传送给它们。
μJavaActors 围绕 3 个核心界面而构建:
消息 是在 actor 之间发送的消息。Message 是 3 个(可选的)值和一些行为的容器:
Message
source
subject
data
subjectMatches()
DefaultMessage
ActorManager 是一个 actor 管理器。它负责向 actor 分配线程(进而分配处理器)来处理消息。ActorManager 拥有以下关键行为或特征:
ActorManager
createActor()
startActor()
detachActor()
send()/broadcast()
DefaultActorManager
Actor 是一个执行单元,一次处理一条消息。Actor 具有以下关键行为或特征:
Actor
name
category
receive()
willReceive()
peek()
remove()
getMessageCount()
getMaxMessageCount()
AbstractActor
图 1 显示了 actor 之间的关系。每个 actor 可向其他 actor 发送消息。这些消息保存在一个消息队列(也称为 邮箱 ;从概念上讲,每个 actor 有一个队列,当 ActorManager 看到某个线程可用于处理消息时,就会从队列中删除该消息,并将它传送给在线程下运行的 actor,以便处理该消息。
图 1. actor 之间的关系
介绍内容节选自 IBM DW