67得票7回答
事务范围过早完成

我有一段代码,在TransactionScope内运行,在这段代码中,我对数据库进行了多次调用。 包括选择、更新、创建和删除等操作。当我执行删除操作时,我使用SqlCommand的扩展方法执行它,如果此查询可能会出现死锁,它将自动重新提交查询。 我认为问题出在出现死锁时,函数尝试重新提交查...

67得票9回答
Java中的程序死锁检测

我如何在Java程序中以编程方式检测死锁的发生?

65得票3回答
线程转储分析工具/方法

当Java应用程序出现挂起时,即使你不知道导致问题的用例,你也想要进行调查,我了解线程转储可以很有用。 但是,我们如何轻松地从线程转储中提取有用的数据,以找到问题所在?我正在使用的服务器应用程序采用EJB体系结构,因此线程转储包含许多容器线程,我不确定是否应该查看这些线程(即非运行我的应用程序...

65得票16回答
Java中的死锁检测

很久以前,我从一本Java参考书上摘录了一句话:"Java没有处理死锁的机制,甚至不会知道发生了死锁。" (《Head First Java》第二版,p.516) 那么,这是什么意思呢?在Java中有没有一种方法来捕捉死锁情况?我的意思是,我们的代码是否有一种方式可以理解死锁情况的发生?

63得票3回答
为什么嵌套锁不会导致死锁?

为什么这段代码不会引起死锁? private static readonly object a = new object(); ... lock(a) { lock(a) { .... } }

62得票4回答
为什么在同一对象上进行锁定不会导致死锁?

可能是重复问题: C#中的可重入锁 如果我编写类似于以下代码:class Program { static void Main(string[] args) { Foo(); Console.ReadLine(); } ...

62得票20回答
一个线程是否可能自己死锁?

在Java中,一个线程能否发生死锁? 我曾在一次面试中被问到这个问题,当时我的回答是不可能,但面试官告诉我确实可以。不幸的是,我没有得到他如何实现这个死锁的方法。 这让我开始思考,我唯一想到的情况是,在一个包含调用自身方法的RMI服务器进程中可能会出现这种情况。调用该方法的代码行位于同步块...

61得票2回答
如何最好地锁定多个std::mutex?

注意:这个问题涉及到C++11。在C++17(或更高版本)中,对于同样的问题的答案可能已经改变。有关详细信息,请参考: std::lock_guard还是std::scoped_lock? 当我们想要锁定多个std::mutex时,我们使用std::lock()。但是std::lo...

59得票1回答
如何在SQL Server上模拟死锁?

我正在尝试模拟SQL Server上的死锁。_|worker_id|salary| 1|1 |100 | 2|2 |300 | 第1笔交易完成,用时5秒。/* TRANSACTION 1*/ Use dbmcw; DECLARE @sal1 INT, @s...

59得票7回答
“等待-死亡”和“撞击-等待”死锁预防算法有什么区别?

等待-死亡算法和伤害-等待算法有何区别? 这两种死锁预防技术似乎在做同样的事情:回滚旧进程。 它们之间的区别是什么? 请提供一个适当的示例来对比这两个算法。