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. 导致死锁的SQLBulkCopy
- 3. MemoryStream.CopyTo()导致线程死锁
- 4. 如何在concurrent.futures.ThreadPoolExecutor中使用不会导致死锁的锁?
- 5. 硬件发生“死锁”还是软件导致死锁?
- 6. 我的GetEnumerator会导致死锁吗?
- 7. 线程关闭导致的死锁
- 8. 为什么睡眠(1000)导致死锁?
- 9. pthread_mutex_lock和pthread_cond_wait/signal导致死锁
- 10. WCF服务导致SQL死锁错误
- 11. 此代码是否会导致死锁?
- 12. INSERT操作是否会导致死锁?
- 13. 可以使用sem_trywait()导致死锁
- 14. 这怎么会导致死锁?
- 15. assetResourcesForAsset:导致死锁在同一时间
- 16. JxBrowser导致线程死锁120秒
- 17. Javascript Ajax可能导致死锁吗?
- 18. 导致死锁错误的SQL查询
- 19. 为什么这不会导致死锁
- 20. 如何防止在windows phone中保存数据导致死锁?
- 21. 如何避免嵌套同步和导致的死锁
- 22. Netty ChannelFuture如何通知不会导致死锁
- 23. 为什么嵌套锁不会导致死锁?
- 24. Solr线程锁定(死锁)索引导致索引缓慢
- 25. 只使用关键部分的读/写锁会导致死锁
- 26. 如何返回ajax导致成功?
- 27. 永久互斥锁造成死锁?
- 28. 从几个线程调用WSAStartup()会导致死锁吗?
- 29. 竞争文件访问可能导致Java死锁吗?
- 30. NSManagedObjectContext performBlockAndWait当从两个线程调用时导致死锁
参阅此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