悲观锁和乐观锁使用场景

乐观锁是在应用层加锁,而悲观锁是在数据库层加锁(for update)

乐观锁顾名思义就是在操作时很乐观,这数据只有我在用,我先尽管用,最后发现不行时就回滚。

悲观锁在操作时很悲观,生怕数据被其他人更新掉,我就先将其先锁住,让别人用不了,我操作完成后再释放掉。

悲观锁需要数据库级别上的的实现,程序中是做不到的,如果在长事务环境中,数据会一直被锁住,导致并发性能大大地降低。

一般来说如果并发量很高的话,建议使用悲观锁,否则的话就使用乐观锁。

如果并发量很高时使用乐观锁的话,会导致很多的并发事务回滚、操作失败。

总之,冲突几率大用悲观,小就用乐观。

posted on 2016-01-03 14:11  Ruthless  阅读(7925)  评论(0编辑  收藏  举报