Actor Model是一个并发计算的数学模型,由Carl Hewitt在1973年首次提出。它将"actor"作为计算的基本单元。这个模型在分布式系统和高并发环境中特别有用。
主要里程碑:
- 1973年:Carl Hewitt提出Actor Model概念
- 1986年:Erlang语言诞生于爱立信,成为首个完全基于Actor Model的工业级语言
- 2011年:Elixir语言创建,构建于Erlang的BEAM虚拟机上,提供更现代的语法
- 现代实现:Akka (Java/Scala), Orleans (Microsoft), 以及UE4/UE5游戏引擎也采用类似模型
Actor Model的基本原则:
- 一切皆为Actor
- Actor之间只通过消息通信(没有共享状态)
- 每个Actor可以:
- 创建新的Actor
- 向其他Actor发送消息
- 决定如何处理收到的下一条消息
本项目通过两个示例展示不同方法:
rust-example/: 使用传统并发模型(锁、互斥体等)的挑战erlang-example/: 展示Erlang中Actor模型的优雅实现
在游戏引擎中,Actor模型提供了:
- 清晰的对象生命周期管理
- 良好的并发控制
- 简化的对象间通信
- 易于扩展的系统架构