那会不会有这种情况,当我在一个事务中查询了余额是1000,然后要减少200,那我就设置余额是800,在查和设置之间,我女朋友取了100,然后我设置余额是800,最终余额是800,这样的话就出现了问题,按理说最终余额应该是700。
这种情况该如何避免呢?是在编程的过程中避免么?如不直接设置800,而是直接设置 余额=余额-200 来避免这种情况
如果是在编程的过程中避免的话,那更复杂的情况该怎么办呢?假如我读取到一个值,经过很复杂的计算得到了一个结果,然后在中间过程有个人修改了值,那我这个很复杂的计算不久白费了么,是要加锁什么的解决么