本文主要是介绍关于网上盛传的:支付宝和提款机同时取钱的专业解释——事务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
偶尔看见某个平台的评论:
1 “如果我的银行卡有1万元,如果我和另一个人一个在支付宝一个在提款机同时操作支出这一万元会怎么样”
2 “如果在我进行交易的同时,交易被异常终止,例如断电,最后的结果是什么样呢”
问题一:
1.触发支付宝或者提款机余额不足的提醒,2.全部触发
问题二:
1.交易成功 2,交易失败
这就要说到一个关于数据库以及几乎所有语言的术语———
#事务
事务一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
由此可见,事务小到是一个极小的单元,大到整个程序。它几乎包含在所有语言中,对于事务而言,它生于数据库,从诞生起就专门处理类似上面的问题
#事务的特性
事务是恢复和并发控制的基本单位。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
所以问题一:可以用事务的原子性来解答。问题二可以用持久性来解答
链接: 清花天藏.
欢迎访问:
这里可以交流,Python,Django甚至UI设计!!
这篇关于关于网上盛传的:支付宝和提款机同时取钱的专业解释——事务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!