1.actor用法
Scala会建立一个线程池共所有Actor来使用。receive模型是Actor从池中取一个线程一直使用;react模型是Actor从池中取一个线程用完给其他Actor用。
用法1:
import scala.actors._
object ActorSimple extends Actor {
// 实现线程
def act: Unit = {
react {
case n : Int => println(n)
}
}
}
//发送消息:
ActorSimple.start ! 1001 // 需要调用start
用法2:
import scala.actors.Actor._
val a1 = actor { react { case _ =>println("ok") } } // 马上启动
//发送消息:
a1 ! "message" // 不必调用start
提示:
! | 发送异步消息,没有返回值 |
!? | 发送同步消息,等待返回值(阻塞发送消息的线程) |
!! | 发送异步消息,返回值是 Future[Any] |
? | <