Programming in Scala ch30 (Actor..
时间:2010-09-27 来源:jamesqiu
30.5 好的actor编程风格(P616)
l actor不应阻塞
import actors._, actors.Actor._
val time = 1000
// (1)原来阻塞的程序
val mainActor1 = actor {
loop { react {
case n: Int => Thread.sleep(time)
println(n)
case s => println(s) } }
}
1 to 5 foreach { mainActor1 ! _ } // 5秒钟后打印完数字
// (2)改写由helper actor去阻塞的程序
val mainActor2: Actor = actor {
loop { react {
case n: Int => actor { Thread.sleep(time); mainActor2 ! "wakeup" }
println(n)
case s => println(s) } }
}
1 to 5 foreach { mainActor2 ! _ } // 马上打印数字; 1秒钟后打印5个wakeup
l actor之间用且仅用消息来通讯
相关阅读 更多 +
排行榜 更多 +