【说明】 某银行的存款业务分为如下三个过程: (1)读取当前账户余额,记为R(b): (2)当前余额b加上新

11 查阅

【说明】

某银行的存款业务分为如下三个过程:

(1)读取当前账户余额,记为R(b):

(2)当前余额b加上新存入的金额x作为新的余额b,即b=b+x;

(3)将新余额b写入当前账户,记为W(b)。

存款业务分布于该银行各营业厅,并允许多个客户同时向同一账户存款,针对这一需求,完成下述问题。

假设同时有两个客户向同一账号发出存款请求,该程序会出现什么问题? (100字以内)

参考答案:

出现问题:有一个存款值会丢失造成数据不一致。出现问题:有一个存款值会丢失,造成数据不一致。 解析:两个客户A、B向同一账号发出存款100元的请求,当前账号余额为100元,如果银行的存款业务过程为:A(1),B(1),A(2),B(2),A(3),B(3),则会发生,首先A读取当前账户余额为100元,然后B读取当前账户余额为100元,再A加入新存的100元,即账户余额200元,而B也加入新存的100元,账户余额200元,最后A将200元写入当前账户,而B也将200元写入当前账户。这时就造成A存的钱不见了,所

软考中级