Q
如何成功导致死锁
9
A
回答
5
像这样的东西应该工作:
主题1:
lock (A) {
lock (B) { }
}
线程2:
lock (B) {
lock (A) { }
}
+0
+1个很好的示例。我用手指烧了它。 – 2012-07-03 01:56:30
3
class Program
{
static object _locker1 = new object();
static object _locker2 = new object();
static void Main(string[] args)
{
Thread first = new Thread(FirstThread);
first.Start();
Thread second = new Thread(SecondThread);
second.Start();
}
static void FirstThread(object obj)
{
// Lock resource 1
lock(_locker1)
{
Console.WriteLine("Thread 1: locked resource 1");
try
{
Thread.Sleep(50);
}
catch (ThreadInterruptedException e) {}
lock(_locker2)
{
Console.WriteLine("Thread 1: locked resource 2");
}
}
}
static void SecondThread(object obj)
{
// Lock resource 1
lock (_locker2)
{
Console.WriteLine("Thread 2: locked resource 2");
try
{
Thread.Sleep(50);
}
catch (ThreadInterruptedException e) { }
lock (_locker1)
{
Console.WriteLine("Thread 2: locked resource 1");
}
}
}
}
学分:http://www.java-forums.org/java-lang/7346-how-create-simple-deadlock.html
相关问题
- 1. AutoResetEvent.WaitOne()导致死锁
- 2. Thread.Join()导致死锁
- 3. 会导致死锁?
- 4. pthread_mutex_lock导致死锁
- 5. 此代码如何导致死锁?
- 6. MemoryStream.CopyTo()导致线程死锁
- 7. 导致死锁的SQLBulkCopy
- 8. Ruby:open会导致死锁
- 9. 运行PIP导致死锁
- 10. 如何在concurrent.futures.ThreadPoolExecutor中使用不会导致死锁的锁?
- 11. 硬件发生“死锁”还是软件导致死锁?
- 12. 线程关闭导致的死锁
- 13. Java MySQL可能导致死锁?
- 14. 可以使用sem_trywait()导致死锁
- 15. JxBrowser导致线程死锁120秒
- 16. WCF服务导致SQL死锁错误
- 17. 这怎么会导致死锁?
- 18. INSERT操作是否会导致死锁?
- 19. 导致死锁的SQL更新
- 20. 异步等待导致死锁
- 21. pthread_mutex_lock和pthread_cond_wait/signal导致死锁
- 22. 导致死锁错误的SQL查询
- 23. 为什么这不会导致死锁
- 24. 我的GetEnumerator会导致死锁吗?
- 25. 此代码是否会导致死锁?
- 26. Javascript Ajax可能导致死锁吗?
- 27. 调用Runtime.getRuntime()。EXEC(...)导致死锁
- 28. 为什么睡眠(1000)导致死锁?
- 29. assetResourcesForAsset:导致死锁在同一时间
- 30. PSQL JDBC事务导致死锁
参阅此http:// stackoverflow.com/questions/2543140/deadlock-网上样本 – GustyWind 2012-01-18 11:18:19
请参阅此处的示例:http://stackoverflow.com/a/2411456/441574 – Brissles 2012-01-18 11:18:08