创建演员后:
final ActorRef greeter = getContext().actorOf(
Props.create(MyActor.class , "myactor"));
可以重新引用同一演员吗?我要问的原因是我试图在一个actor中存储一些数据,其他actor可以引用该数据。
重新调用“ greeter”会发生什么:
final ActorRef greeter = getContext().actorOf(
Props.create(MyActor.class , "myactor"));
是“迎宾”演员被重新实例化吗?
最佳答案
如果您在同一个类中多次调用actorOf
,则得到的是该参与者的多个实例,因此它们将不会共享状态。如果尝试使用相同的路径创建多个actor,则会出现错误-正如ende所说,只有一个actor可以生活在同一路径上。
您可以从其路径上查找演员。在akka文档中阅读更多有关actor路径的信息:
http://doc.akka.io/docs/akka/2.3.6/general/addressing.html
或者,也许是更好的选择-不那么脆,将actorRef传递给周围。 ActorRef
是不可变的,因此可以安全地作为消息发送,因此,如果在另一个actor中创建actor,则可以定义协议以要求其父级对其进行引用。