两段锁协议(Two-Phase Locking――2PL)是学习锁协议的一个前置条件。慢慢地从浅入深。
两段锁协议规定所有的事务应遵守的规则:
① 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。
② 在释放一个封锁之后,事务不再申请和获得其它任何封锁。
即事务的执行分为两个阶段:
第一阶段是获得封锁的阶段,称为扩展阶段。
第二阶段是释放封锁的阶段,称为收缩阶段。
若所有事务均遵守两段锁协议,则这些事务的所有交叉调度都是可串行化的。
见下图:
协议图示.gif简单的理解就是两段锁,就是分为两个阶段
第一阶段 只能去申请锁
第二阶段 只能去释放锁
网友评论