oracle 锁

1、排它锁(写锁):防止资源共享,用作数据的修改,如果事物T给A加上了锁,那么其他的事物就不能对A加任何的锁,只有T可以对A进行查询或者修改直到提交或者回滚,其他事物才能对A操作。

2、共享锁(读锁):锁上之后只能查询了,事物T给A加上共享锁,其实事物只能给A加共享锁,不能加别的锁,并且这些事物只能查询

3,悲观锁:事物T给A加上锁之后,其他事物不允许对A进行任务操作

4,乐观锁:事物T给A加上锁之后,其他事物可以对A进行操作,只有在提交事物的时候回检测是否冲突,如果冲突进行相应的操作。检测方式:

    (1)查询的时候保存此信息的所有数据,更新的时候跟以前的老数据进行比较,如果一样说明没有冲突,如果不一样说明已经冲突,进行相应的处理

    (2)利用版本,hibernate用的就是这个,增加一个rowversion字段,每次更新此字段会自动加1,如果更新的时候这条数据的rowversion跟更新之后不一致,说明冲突。

    (3)利用timestamp 跟之前操作相似,也是进行比较

你可能感兴趣的:(oracle 锁)