读书人

Hibernate征程(八)之锁

发布时间: 2013-10-22 16:17:03 作者: rapoo

Hibernate征途(八)之锁

锁是在开发中常见的一个问题,锁住的数据可以保证访问的排他性,可以说只要当同一个资源有可能被同时访问时,就应当考虑到锁的问题。Hibernate中锁有两种:悲观锁和乐观锁。

悲观锁

悲观锁的意思是,对数据访问、修改可能出现的问题持悲观的态度,所以要防范于最初的未然:在数据的整个访问过程中都将数据锁定。悲观锁的实现,依靠数据库提供的锁机制,因为在数据一旦被访问就被锁定,所以可以保证实现真正的访问排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据。

最常见的方式为:


乐观锁机制避免了长事务中的数据库加锁开销,大大提升了大并发量下的系统整体性能表现;但因为乐观锁机制往往与系统的数据存储逻辑有关系,例如其他系统对数据的同时修改,可能会将脏数据存入数据库。

总结

二者的使用要根据实际情况,悲观锁和乐观锁就先说到这里。

读书人网 >软件架构设计

热点推荐