用于演示死锁的 C# 应用程序

标签 c# .net multithreading deadlock

<分区>

Possible Duplicate:
simple deadlock example in c#

我一直在处理我的应用程序中的多线程,目前正在学习死锁。

我想编写一个实际导致死锁的快速应用程序,以便我可以观察效果,​​并尝试补救这种情况。

是否有任何情况可以保证 100% 的时间死锁,我可以在 C# 中模拟?

最佳答案

我没有针对这个特定案例的现成代码 (:

但在心理密码中,您可以做的是:

线程 1:
拿锁1
睡 30 秒
拿锁2
免费锁2
免费锁1

线程 2:
拿锁2
睡 30 秒
拿锁1
免费锁1
免费锁2

每个线程都可以在其上运行,但是它们一起或多或少同时启动会导致死锁

关于用于演示死锁的 C# 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430529/

相关文章:

c# - 如何无异常(exception)地指示失败的操作(多个应用程序域)?

java - 如何杀死队列中等待执行Java方法的线程

c# - 如何在MVVM中更改SelectedIndex

c# - WPF INotifyPropertyChanged 不更新数组属性?

.NET 生成服务引用时加载错误的程序集

c# - 在 .net 中将数据保存到文件时的良好编码习惯

C++中断线程等待用户输入

java - 线程执行不可预测

c# - 如何仅使用 C# 获取 SQL Server 数据库中的表列表以及主键?

c# - 回调后重新加载插件