58得票5回答
ReentrantReadWriteLock:读锁和写锁有什么区别?

我所知道的是: ReadLock 和 WriteLock 彼此会产生影响 WriteLock 就像是 synchronized ReadLock 似乎不能单独使用

53得票7回答
进程(ID)在锁定资源时发生死锁,并被选择为死锁牺牲者。重新运行该事务。

我有一个用C#编写的应用程序,使用存储过程将数据插入到SQL Server(2008)表中。我正在使用多线程来执行此操作,并在线程内部调用存储过程。 现在我的存储过程在插入数据时使用了"tablock"。 执行此代码时,我遇到以下错误: “Transaction (Process ID) wa...

51得票13回答
避免Java中死锁的技巧

我正在学习Java线程和死锁,我理解死锁的例子,但是我想知道是否有一般规则可以遵循来预防死锁。 我的问题是,是否存在可以在Java源代码中应用以预防死锁的规则或提示? 如果是这样,请说明如何实施。

49得票15回答
什么是多版本并发控制(MVCC)?谁支持它?

最近,Jeff在他的博客中谈到了他在数据库死锁问题上的困扰。 多版本并发控制(MVCC)声称可以解决这个问题。那么它是什么,哪些数据库支持它呢? 更新:以下是支持多版本并发控制的数据库(还有其他吗?) Oracle PostgreSQL

46得票3回答
Java同步方法

考虑下面的代码:public synchronized void onSignalsTimeout(List<SignalSpec> specs) { if (specs != null && specs.size() > 0) { f...

45得票1回答
WinForms调用异步方法导致程序挂起

我已经在这个问题上工作了一段时间,但现在我真的想了解出了什么问题。我有一个相当简单的应用程序(它是一个turtoise SVN插件,用于youtrack,但我可以使用一个微不足道的winforms应用程序复制该问题)。 我有一个异步方法ResolveIssuepublic async Tas...

41得票5回答
SQL Server死锁在select/update或多个select之间

SQL Server死锁文档都是关于操作1锁定资源A然后尝试访问资源B,而操作2锁定资源B并尝试访问资源A的情况。 然而,在我们一些繁忙应用程序中,我经常看到一个select和一个update之间甚至是多个select之间出现死锁。我发现死锁跟踪输出中的一些细节很难理解,但实际上我只想了解什...

40得票10回答
死锁的常见原因是什么?

死锁很难发现,也很难去除。 我该如何找到代码中导致死锁的错误源?是否存在“死锁模式”? 在我的特殊情况下,这涉及数据库,但是这个问题适用于任何死锁。

40得票4回答
“lock | communication buffer resources”是什么意思?它涉及到IT技术。

我有一个错误日志,报告了一个死锁问题: 交易(进程 ID 55)被死锁在“锁定|通信缓冲资源”上与另一个进程,并被选择为死锁牺牲者。重新运行交易。 我正在尝试重现此错误,但我的标准死锁 SQL 代码产生了一个不同的错误: 交易(进程 ID 54)被死锁在“锁定资源”上与另一个进程,并被选...

40得票2回答
Hibernate如何决定更新/插入/删除的顺序?

首先,让我们暂时不考虑Hibernate。假设我有两个表A & B。两个交易正在更新这两个表中的相同记录,但txn1先更新B再更新A,而txn2则先更新A再更新B。这是典型的死锁示例。避免死锁的最常见方法是预先定义获取资源的顺序。例如,我们应该先更新表A,然后再更新B。 回到Hibe...