假设有2个并行的 transaction TA和TB。
-- transaction TA:BEGIN
UPDATE table_a .....
UPDATE table_b .....
COMMIT
-- transaction TB:
BEGIN
UPDATE table_b .....
UPDATE table_a .....
COMMIT
下面情况会导致死锁:
1, TA 运行 到 UPDATE table_a ....., 这个可以有,锁了table_a。
2,然后 TB 运行 到 UPDATE table_b ....., 这个可以有,锁了table_b。
3,然后 TB 运行 到 UPDATE table_a ....., 这个不可以,因为TA锁了table_a,TB等待。
4,然后 TA 运行 到 UPDATE table_a ....., 这个不可以,因为TB锁了table_b,TA等待。
然后就没有然后了。
pg是有同步锁机制。记这款软件是有同步锁机制的,只要你用电脑打开了pg软件之后,然后进入到系统设置里面,就会看到同步锁机制,这款锁机制是为了让软件系统自定运行,才会有锁机制这个东西的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)