Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Concurrency 两阶段锁定如何帮助避免不可序列化的时间表?_Concurrency_Transactions_Locking_Serial Processing - Fatal编程技术网

Concurrency 两阶段锁定如何帮助避免不可序列化的时间表?

Concurrency 两阶段锁定如何帮助避免不可序列化的时间表?,concurrency,transactions,locking,serial-processing,Concurrency,Transactions,Locking,Serial Processing,现在,我这里有两个交易。 一致性要求为A=0 v B=0,初始值为A=B=0 T1: read(A); read(B); if A=0 then B:=B+1; write(B). T2: read(B); read(A); if B=0 then A:=A+1; write(A). 我知道没有并行执行导致可序列化的时间表。所以我想应用两阶段锁定来保证可序列化性 两相锁定如何保证可串行化?你能给我举一个这两项交易的例子吗 谢谢。如您所述,没有并

现在,我这里有两个交易。 一致性要求为A=0 v B=0,初始值为A=B=0

T1: read(A);
    read(B);
    if A=0 then B:=B+1;
    write(B).

T2: read(B);
    read(A);
    if B=0 then A:=A+1;
    write(A).
我知道没有并行执行导致可序列化的时间表。所以我想应用两阶段锁定来保证可序列化性

两相锁定如何保证可串行化?你能给我举一个这两项交易的例子吗


谢谢。

如您所述,没有并行执行导致可序列化的计划,即该计划不是冲突序列化


如果计划不可冲突序列化,则两阶段锁定协议会导致死锁。因此,不能使用两阶段锁定来保证可序列化性。

在出现此问题的情况下,两阶段锁定意味着什么?在进入T1或T2之前先锁定a,然后锁定B?