有趣的多线程编程(4)——死锁

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

有趣的多线程编程(4)——死锁

有趣的多线程编程(4)——死锁 // DeadLockSample.cs

// 分析一下为什么会发生死锁?

Thread.Sleep(500); Console.WriteLine (); ); Console.WriteLine (); ); } Console.WriteLine (); } Console.WriteLine(); } ); ); Thread.Sleep(1000); Console.WriteLine(); ); } Console.WriteLine (); } Console.WriteLine(); }} Locking firstLock

Locked firstLock

Locking secondLock

Locked secondLock

Locking firstLock Locking secondLock

因应之道,使用Queue和Monitor:

//QueueMonitorThread.cs

, i); queue.Produce(i); Thread.Sleep(rng.Next(1000)); } } Random rng = , o); Thread.Sleep(rng.Next(1000)); } }}Producing 0 Consuming 0

Producing 1 Consuming 1

Producing 2 Consuming 2

Producing 3 Consuming 3

Producing 4

Producing 5 Consuming 4

Producing 6 Consuming 5

Consuming 6

Producing 7 Consuming 7

Producing 8 Consuming 8

Producing 9 Consuming 9

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航