【发布时间】:2015-11-15 17:45:22
【问题描述】:
我知道这是一个单线程示例,这将锁定在多线程示例中。但是考虑到执行顺序,锁不应该被父级消耗,因此即使在单线程情况下也会饿死子级?
class Program
{
static readonly object Lock = new object();
static void Main(string[] args)
{
Console.WriteLine("Main start");
Parent();
Console.WriteLine("Main end");
Console.ReadLine();
}
static void Parent()
{
lock (Lock)
{
Console.WriteLine("Parent start");
Child();
Console.WriteLine("Parent end");
}
}
static void Child()
{
lock (Lock)
{
Console.WriteLine("Child start");
Console.WriteLine("Child end");
}
}
}
控制台输出
主要开始
家长开始
儿童开始
子端
父端
主端
【问题讨论】:
标签: c# .net multithreading locking