Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在参与者之间共享可变对象_Java_Akka_State_Mutable - Fatal编程技术网

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
接收请求并将工作委托给两个子Actor
Actor 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
   }
}

子参与者将“共享可变”对象中的更改通知其父级。因此,“可变”实际上并不是必须是可变的,你能详细说明一下吗?