事务:一系列的操作要么全做要么全不做
1. 原子性:将事务中的操作看成是一个整理,不能拆分
2. 一致性:在事务执行之前,数据是保持一致的状态,执行之后,也是一致的状态;
例如:假设整个银行系统共有300元,A账户有100元,B账户有200元,当A账户往B账户转了100元后,银行系统还是有300元,在转账操作前和转账完成后银行系统还是有300元没有发生改变,这就是一致性。
3. 隔离性:指的是事务之间是隔离的,互不影响。
4. 持续性:事务执行完成后的结果是持续的。
事务是并发操作的前提条件,执行并发操作是为了提高程序执行的效率。
以下是并发时出现的一些问题:
封锁协议是为了解决并发操作带来的上述几点问题。
封锁协议:
X锁指的是写锁,S锁是读锁,加了S锁的操作还是加上S锁,但不能加X锁;加了X锁的操作不能再加任何锁。