Elixir Process 解剖

Elixir/Erlang 的并发是基于 Actor 模型的,而 Actor 在 Elixir 中的表示则是 Process。我们来看一下 Elixir Process 和 Actor 的术语和概念。

Anatomy of an actor (Elixir/Erlang Process)

Elixir/Erlang process

  • 运行于BEAM之上(这里的process不是指系统进程,而是Erlang虚拟机的进程)
  • 完全与其他process隔离
  • 不会共享内存
  • 通过messages与其他process交互
  • 有一个私有状态(只能通过私有计算函数,消息监听修改)
  • 可以有私有消息监听(计算函数)来处理来自内部和外部的消息

私有监听者,计算函数(private listeners,calculation functions)

Elixir/Erlang process’s Mailbox

Mailbox
  • 异步地接收内部和外部发来的消息,所以接收一个消息不会阻塞发送消息
  • 同步地将消息传递到process的私有监听者(计算函数)

Elixir/Erlang process’s State

State
  • 是process的私有存储
  • 只能由该process改变
  • 当process挂了,state会变为初始状态
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容