scala在新的API中已经没有了actor,2.10里已经废弃了scala-actor。akka显然更加强大,不仅支持本地还支持远程和集群,甚至支持消息队列模式。编程模型也更简单。
下面只是演示下actor的操作:
package kang
import scala.actors.Actor
class HelloScalaActor extends Actor{
def act(){
while(true){//receive不复用线程
receive{
case "HelloScalaActor" => println("receive: "+Thread.currentThread().getId)
}
}
}
}
class HiScalaActor extends Actor{
def act(){
while(true){//react复用线程
react{
case "HiScalaActor" => println("react: "+Thread.currentThread().getId)
}
}
}
}
object Scala_actor {
def main(args: Array[String]): Unit = {
/* val actor=new HelloScalaActor
actor.start
val actor2=new HiScalaActor
actor2.start
for(i <- 1 to 10){
actor ! "HelloScalaActor"
}
for(i <- 1 to 10){
actor2 ! "HiScalaActor"
}*/
for(i <- 1 to 10){
((new HelloScalaActor).start()) ! "HelloScalaActor"
}
for(i <- 1 to 10){
((new HiScalaActor).start()) ! "HiScalaActor"
}
}
}