message.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 38 行

SCALA
38
字号
package examples.actorsimport scala.actors._import scala.actors.Actor._object message {  def main(args: Array[String]) {    val n = try { args(0).toInt }    catch {      case _ =>        println("Usage: examples.actors.message <n>")        Predef.exit    }    val nActors = 500    val finalSum = n * nActors    Scheduler.impl = new SingleThreadedScheduler    def beh(next: Actor, sum: Int) {      react {        case value: Int =>          val j = value + 1; val nsum = sum + j          if (next == null && nsum >= n * j)            println(nsum)          else {            if (next != null) next ! j            if (nsum < n * j) beh(next, nsum)          }      }    }    def actorChain(i: Int, a: Actor): Actor =      if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a    val firstActor = actorChain(nActors, null)    var i = n; while (i > 0) { firstActor ! 0; i -= 1 }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?