![](/img/trans.png)
[英]Multiple threads updating different items of a shared Dictionary with locks on keys
[英]Will updating different rows from same table using multiple threads cause any deadlocks or delay in updates due to table/page locks?
我有一个场景,我必须使用SQL Server存储过程更新表中的多行。
我正在使用线程来快速进行更新(C#console application + ADO.NET)。
每个线程将更新该表中的不同行集。
我很好奇它会导致SQL中的任何死锁吗?
更多细节:
我有独立的线程,他们不共享任何共同的资源。 我更担心SQL锁定机制,因为多个线程调用相同的存储过程来更新相同的表但不同的记录集(不同的行)。
它不应该导致任何死锁(只要没有奇怪和复杂的约束)。
当您使用像快照这样的大量TransIsolation时,它可能会导致线程必须等待彼此的延迟。 但是使用默认的ReadCommitted,你应该没问题。
如果你不正确地处理它们,线程可能会陷入僵局。 如果你想要安全。 只是用
Monitor Class
这将限制并锁定您当前的线程。
如果您在桌面上没有任何相关索引,那么您遇到了一些麻烦。
除此之外你应该没问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.