欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

假设存款余额x:1000元,甲事务取走存款300元,乙事务取走存款200元,其执行时间如下:甲事务 时间

时间:2017-08-10

假设存款余额x:1000元,甲事务取走存款300元,乙事务取走存款200元,其执行时间如下:甲事务 时间 乙事务读x t1 t2 读x 更新x二x—300 t3 14 更新x:x—200 如何实现这两个事务的并发控制? (计算题)

答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答案:如果按照题中的顺序执行甲乙两个事务,则最后的x为800,而不是正确的500。为此,采用封锁的方法,将甲事务修改为: WHILE(x上已有排他锁) {等待 } 对x加上排他锁读x 更新x=x-300 释放排他锁将乙事务修改为: { 等待 } 对x加上排他锁读x 更新x=x-200 释放排他锁可以说明如下:甲事务 时间 乙事务 XLOCK x t1 获得 t2 XLOCK x 等待更新x=x-300 t3 等待 x=700 Commit t4 等待 UNLOCKx t5 等待 t6 获得XLOCK x t7 更新x=x-200 x=500 t8 Commit t9 UNLOCK x

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。