多线程问题
1个回答
展开全部
举个简单的例子吧
假如你的银行卡里边有1000块钱
你在外面消费刷卡的同时,别人往你账号上同时打钱
如果银行的系统没有一个锁机制的话,而消费和存储又同时发生的话,那么你的账号余额就乱了。
如果你消费了500,别人给你汇款了500,没有锁而二者又同时发生(虽然这种概率极低,但不能排除),那么很有可能你的账号余额是1500或者500,而实际上你的账号应该还是1000.
刷卡和存储可以看成两个线程,他们都在竞争你银行卡余额这个共同的资源,你的账号余额是1500还是500,取决于二者谁先竞争到了你账号卡里的余额数据。
所以这样的情况必须要加锁的,消费和存储同一时候只能有一个对银行卡余额进行操作。
假如你的银行卡里边有1000块钱
你在外面消费刷卡的同时,别人往你账号上同时打钱
如果银行的系统没有一个锁机制的话,而消费和存储又同时发生的话,那么你的账号余额就乱了。
如果你消费了500,别人给你汇款了500,没有锁而二者又同时发生(虽然这种概率极低,但不能排除),那么很有可能你的账号余额是1500或者500,而实际上你的账号应该还是1000.
刷卡和存储可以看成两个线程,他们都在竞争你银行卡余额这个共同的资源,你的账号余额是1500还是500,取决于二者谁先竞争到了你账号卡里的余额数据。
所以这样的情况必须要加锁的,消费和存储同一时候只能有一个对银行卡余额进行操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询