作用
每次只允许一个业务事务访问数据以防止并发业务事务中的冲突。
悲观离线锁从一开始就避免冲突,它要求业务事务在对数据进行操作前必须获取该数据的锁。因此在大多数情况下,一旦开始了一个业务事务,就能确信不会由于并发冲突而驳回提交的数据。
运行机制
- 通过三步实现悲观离线锁:决定使用哪种锁;构建一个锁管理对象;定义业务事务使用锁的过程。
- 锁类型:
- 独占写锁(exclusive write lock)。只有业务事务进行编辑会话数据时才需要,它忽略了对数据的读。
- 独占读锁(exclusive read lock)。业务事务为了读出数据才获得该锁,它影响系统的并发行。
- 读/写锁(read/write lock)。即提供互斥读锁的限制,又有互斥写锁的限制。
- 读/写锁的关系: