![]() |
1
1
如果锁的获取(通过在数据库表中插入一个条目)是同一事务的一部分,那么第二个线程将看到该事务的所有更改或没有更改。对于默认隔离级别(ReadCommitted),这是正确的。 换句话说:无论哪个线程成功地提交了单个事务,它也成功地获得了锁(=成功地将条目插入数据库)。 在您的代码示例中,我缺少对Commit()/Rollback()的处理。确保将此作为实现的一部分。 |
![]() |
2
0
它取决于您使用的事务隔离级别。 默认隔离(ReadCommitted)级别确保其他连接无法看到连接正在进行的未提交的更改。 在执行SQL语句时,可以使用 locking hints . |
![]() |
a a · 为什么在这个可重入锁示例中需要引用计数? 3 年前 |
![]() |
JohnLBevan · 为什么原子语句上需要锁提示? 7 年前 |
![]() |
Jay Wang · 生产者/消费者实施:陷入消费者循环 7 年前 |
![]() |
Andremoniy · 悲观写入是否锁定整个表? 7 年前 |
![]() |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 7 年前 |
![]() |
Ins0maniac · Rails,锁定数据库中的记录 7 年前 |