Wener笔记故事指南
Actor vs CSP
- Comparison with the actor model
- CSP 消息内容无关,Actor 消息类型明确
- CSP 基于 channel,Actor 基于明确的终端标识
- CSP channel 收发两端存在“约会”定点,Actor 全异步不存在等待
- How are Akka actors different from Go channels?
- channel
- limit buffer
- select - waiting faster
- wait - 不消耗 CPU,只需要一点内存
- 无 buffer - 等待对方存在
- buffer 满 - 等待空间
- 空 buffer - 等待数据存在
- 劣势
- actor
- 每个 actor 类似一个 goroutine
for {}
- 只有一个输入 channel
- infinite buffer
- unbounded number of writer - writer 也是 actor
- 不存在 wait - 全异步 - 不存在 select
- 劣势
- 当需要流控交互时会变得麻烦 - 请求/响应 - 失去性能优势
- 无法拒绝通讯 - go 可以选择 close channel,可 select 部分
- 无限的 buffer 并不能实际被保障 - 内存总是会满的