这是一个理论问题。它可以应用于许多系统。例如,让我们假设RESTful Web服务。您想找出一些东西,但碰巧的是,您无法在一个查询中得到它。您可以进行多个查询。例如,您有一个联合银行帐户(或一个公司银行帐户),您想知道有多少钱在那里。与此同时,其他人把钱从支票转到储蓄。
Checking: $5,000 Savings: $3,000我:查询检查。答复:5 000美元
乔:把4,000美元从支票转到储蓄
Checking: $1,000 Savings: $7,000我:查询储蓄。答复:7 000美元
共计12 000美元。
你如何避免这样的反常现象?该示例显示在一家银行的两个帐户,但在两家不同银行的两个帐户中也可能出现这种情况。
发布于 2010-09-23 16:23:38
您需要某种形式的并发控制来处理这样的问题。
在您的示例中,有一些可能的解决方案:
发布于 2010-09-23 17:49:22
这就是为什么有一些进程来指示、清除和待决的活动。就像您在同一笔交易中同时拥有提款和押金一样,这些余额必须进行合并,并表明有未完成的转账,因此可能无法获得所有余额。
https://softwareengineering.stackexchange.com/questions/6723
复制相似问题