作者QQ29 (我爱阿蓉)
看板C_Sharp
标题[问题]lock scope中又有lock 为啥不会deadlock?
时间Tue Aug 2 22:47:32 2011
标题不太好懂@@
请大家看一下以下的sample code
public class Fooo
{
static object oo = new object();
static public void Get()
{
lock (oo)
{
Console.WriteLine("Hi");
Orz();
Console.WriteLine("all");
}
}
static void Orz()
{
lock (oo)
{
}
}
}
class Program
{
static void Main(string[] args)
{
Fooo.Get();
}
}
今天突然想到 我这样好像怪怪的
我以为会deadlock
因为get那边已经进去 lock的scope了
可是Orz那块又在去lock一次
我以为他会卡死在第二个lock区块迟迟进不去
谁知道顺利的印完了....
观念整个错误~~
可否请教各位给予指证
想了一下是不是因为我现在只有一条thread再跑 不会被挡
所以想问 如果多个thread 这种code会不会有风险
谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 188.223.83.48
※ 编辑: QQ29 来自: 188.223.83.48 (08/02 22:53)