Language agnostic 如何在GUI层处理/响应用户输入并发性?
处理用户输入并发的好方法是什么 作为已经排除数据库锁定的答案,您通常如何处理并发用户输入 即使不是通过行锁定实现,锁定是否始终是一个坏主意?是否存在不依赖于用例的最佳实践? 你对你的策略有什么经验 编辑:我知道通过事务在数据级别处理并发:如果两个用户同时触发复杂的数据更改,事务将处理它 但我感兴趣的是在GUI层上处理或至少对它们作出反应。如果数据更改是长时间用户交互操作的一部分,该怎么办 假设两个或多个用户正在通过web界面编辑同一文件。在某个点上,其中一个用户点击保存按钮。其他用户怎么了Language agnostic 如何在GUI层处理/响应用户输入并发性?,language-agnostic,concurrency,user-input,Language Agnostic,Concurrency,User Input,处理用户输入并发的好方法是什么 作为已经排除数据库锁定的答案,您通常如何处理并发用户输入 即使不是通过行锁定实现,锁定是否始终是一个坏主意?是否存在不依赖于用例的最佳实践? 你对你的策略有什么经验 编辑:我知道通过事务在数据级别处理并发:如果两个用户同时触发复杂的数据更改,事务将处理它 但我感兴趣的是在GUI层上处理或至少对它们作出反应。如果数据更改是长时间用户交互操作的一部分,该怎么办 假设两个或多个用户正在通过web界面编辑同一文件。在某个点上,其中一个用户点击保存按钮。其他用户怎么了 他
- 他们会得到通知和/或被迫重新装载吗?还是最终会覆盖第一个用户的更改
- 我应该锁定文件并防止多个用户编辑同一文件吗
- 我可以把整个编辑过程放在一个事务中吗(我非常怀疑,但谁知道…)
为了理解这一理论,我推荐其他很多好书。最佳策略取决于从(业务)流程的角度看应该发生什么-同样重要的问题是用户通常会期望什么,什么会让他们最不惊讶,当然,实现他们期望的东西是否可行 您通过web编辑文件的示例可以分解如下:
顺便说一句,你的例子与其他情况截然不同,比如预订机票或预约医生 订票时,飞机上的座位有限。这是有可能的,因为事实上,数据传输并不是一个以上的人在飞机上预定同一最后一个座位的瞬间 因此,预订至少应分两步进行: