用途:当并发执行者可能写入同一文件、分支、键或状态对象时,应用此原则判断应先消除共享还是强制串行化。
主要能力:先识别共享可变状态,例如双方都读写同一文件、都推送同一分支、都定义并消费同一 API。默认做法是消除共享写目标:给每个执行者独立的文件、键、分支或状态目录,只在读取或报告边界处合并。两个 worker 各自把 lastX 字段写进同一个 state.json 仍属于共享写入;而 indexer-state.json 与 metrics-state.json 分开则不算共享。只有当“单一共享写目标”是真实不变量时,才用锁文件、顺序阶段、单一写入者执行者或原子 compare-and-swap 在结构上强制串行化。
使用方式:把“我们需要加锁”当作需要审视的设计信号,而不是默认答案。先问这些执行者是否真的需要同一个可变对象;若不需要,就消除共享。
适用场景:并发写入共享可变状态易产生竞态条件,这类问题往往间歇出现、难以复现且调试成本高,因此适合在并发协作、多写入者读写同一资源的设计阶段使用。
限制:资料未提供具体命令、代码实现细节、平台或收费信息;给出的模式是原则性指导,实际落地需结合具体系统判断。