Actor 模型:从共享状态到消息传递
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>并发程序最难处理的部分,通常不是“同时运行很多任务”,而是“多个任务同时读写同一份状态”。</p><p>例如,订单库存是 <code>10</code>,两个请求同时执行“读取库存 → 减一 → 写回”。若两个请求都先读到 <code>10</code>,再分别写回 <code>9</code>,就会少扣一次库存。这类问题称为<strong>竞态条件(race condition)</strong>。互斥锁可以保护临界区,但开发者需要持续回答几个问题:哪份数据由哪把锁保护、锁的获取顺序是什么、调用外部服务时能否持锁、异常路径会不会漏解锁。</p><p>Actor 模型提供了另一种组织思路:<strong>让一份可变状态只属于一个处理者;....