(快速参考)

概念

Actor

Actor 是独立的隔离的活动对象,它们之间不共享任何数据,仅通过消息传递进行通信。避免共享可变状态可以使开发人员免于许多典型的并发问题,例如死锁或竞态条件。每个 Actor 的主体(代码)由线程池中的随机线程执行,因此 Actor 可以并发且独立地执行。由于 Actor 可以共享一个相对较小的线程池,因此它们可以避免 JVM 的线程限制,即使在应用程序包含数千个 Actor 的情况下也不需要过多的系统资源。

Actor 通常在其通常的任务之上执行三种基本类型的操作

  • 创建一个新的 Actor
  • 向另一个 Actor 发送消息
  • 接收消息

Actor 可以作为特定 Actor 类的子类创建,也可以使用工厂方法创建,该方法提供 Actor 的主体作为闭包参数。有多种方法可以发送消息,可以使用 >> 运算符或任何 send()sendAndWait()sendAndContinua() 方法。接收消息可以在阻塞或非阻塞方式下执行,当物理线程返回到池中直到有消息可用。

Actor 可以被组织成各种算法,可能利用类似于企业消息系统中已知的架构模式。