Actor是消息并发模型。
在Scala中Actor能够实现并行编程(2.10.x以前的版本),是基于事件模型的并发机制
Scala是运用消息的发送、接收来实现多线程
大家知道 Java的多线程需要注意线程安全,有锁的概念,这就难免会出现死锁等问题,因为Java中多数使用的是可变状态的对象资源。
而Scala中所有皆对象,都是不可变资源,再基于Actor的消息来实现并行
Actor方法执行顺序
- 调用 start() 方法,启动 Actor
- 执行 act() 方法
- 向 Actor 发送消息
消息发送方式
- ! —— 发送异步消息,没有返回值
- !? —— 发送同步消息,等待返回值
- !! —— 发送异步消息,返回值是 Future[Any]