我们知道,在perl线程中,我们有一个名为lock的函数,根据cpan :lock在变量上放置一个顾问锁,直到锁超出作用域为止。好吧,如果我们写这样的东西呢:2 lock($obj) if threads::shared::is_shared($obj); #equivalent to if(threads3 ... rest of the code5 }
所以锁的范围是从第2行到第4行,还是仅仅是第
假设两个同时进行的事务在Postgresql上执行以下查询:SELECT * FROM mytable WHERE id IN (1, 2, 3, 4) FOR UPDATESELECT* FROM mytable WHERE id IN (6, 3, 2, 1) FOR UPDATE
由于Postgresql以不一致的顺序获取行锁,是否有可能发生死锁?例如,如果Postgresql按本例中in的顺序获取行锁,则可能出现死锁。或者Postgresql在内部是否足够