Java 在参与者之间共享可变对象
我有下面的场景Java 在参与者之间共享可变对象,java,akka,state,mutable,Java,Akka,State,Mutable,我有下面的场景 Actor A接收请求并将工作委托给两个子ActorActor b和Actor c。这两个参与者都会更改对象的状态,但父参与者并不依赖于这些参与者的结果 这是反模式吗?如何在不传递此对象的情况下分配负载?这里是scala中的示例,但逻辑是相同的 class ParentActorA extends Actor { val childActorB: ActorRef = _ val childActorC: ActorRef = _ def receive: Rece
Actor A
接收请求并将工作委托给两个子ActorActor b
和Actor c
。这两个参与者都会更改对象的状态,但父参与者并不依赖于这些参与者的结果
这是反模式吗?如何在不传递此对象的情况下分配负载?这里是scala中的示例,但逻辑是相同的
class ParentActorA extends Actor {
val childActorB: ActorRef = _
val childActorC: ActorRef = _
def receive: Receive = {
case r: Request =>
childActorB ! Delegate(r)
childActorC ! Delegate(r)
case n: ChildNotification => //change local state based on this notification from child actor
}
}
class ChildActorA extends Actor {
def receive: Receive = {
case Delegate(r) => //do some work and notify parent with ChildNotification object
}
}
子参与者将“共享可变”对象中的更改通知其父级。因此,“可变”实际上并不是必须是可变的,你能详细说明一下吗?