在scala中运行的并行程序

时间:2014-09-04 22:23:41

标签: java scala parallel-processing actor reactive-programming

我能够创建actor并在本地运行它们。但现在我希望演员在网络上连接的计算机上运行代码。假设我想创建演员来查找数字的阶乘。

object FactorialAll extends Actor{
   def receive = {
     case (n:Int)=>
         for(i<-1 to n){
          var factorActor = context.actorOf(Prop[FactorActor],"factorActor")
          factorActor ! Factorial(i)
         }
     case Result(n:Int,fact:BigInt)=>
        println("factorial of " + n + " is "+fact)
   }
}

我们向这个Actor发送一些int。

如何创建和运行FactorActor实例以在网络上运行。

1 个答案:

答案 0 :(得分:2)

要向远程演员发送消息,您需要Akka Remoting:http://doc.akka.io/docs/akka/current/scala/remoting.html

然后,你可以获得远程演员并发送消息,如:

val selection =
  context.actorSelection("akka.tcp://actorSystemName@host:1234/user/actorName")

selection ! "fooBar"