你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
两个人同时修改,会发生什么?
共享地址不替你决定旧版本的修改应该怎样处理。
甲和乙都读到报告标题“草案”。甲先把它改成“审阅版”,乙还拿着旧页面,随后提交“会议版”。如果系统直接接受后一次写入,甲的修改可能被覆盖。
一种处理方式是带版本条件的写入:乙提交修改时,同时说明“我是在版本 v1 的基础上改的”。支持这个条件的实现检查当前版本;如果已经变成 v2,就拒绝这次旧版本写入,让乙先取得新内容再决定如何处理。
这里的 v1、v2 只是讲解用的名称。实际版本值可以采用不同格式,调用者应原样保存和传回,不自行拆解,也不把不同 Provider 的版本值拿来比较。
AFS 的写入选项可以表达 ifMatch 版本条件;使用前需要确认 Provider 声明并执行相应能力。一个共同接口不会自动给所有资源增加相同的并发保证。
遇到版本冲突时,界面可以保留乙尚未提交的文字,显示最新内容,让人决定合并或重写。盲目重复旧写入不是解决冲突。 是否能自动合并,取决于内容和应用规则。
继续深入
检查一下理解
为什么检测到旧版本后,不应直接反复提交原来的修改?
当前内容可能已经变化;应取得新版本并按应用规则决定合并或重写,避免覆盖别人的工作。
沿着学习路径继续
- 从找到资源,到可靠地操作它第 4 / 6 步