我看到很多使用静态只读对象的锁定,在下面给出的代码中这条语句的意义是什么?我知道锁被应用在一个对象上,这只是一个使锁工作的对象,它只是一个黑客,因为我不'这里不需要任何对象,而只是创建一个对象以使锁定工作?
另外,我不只是说 object obj1= new object() 我使用只读和静态,我猜是由于性能提高,但只读和静态如何帮助提高性能?
static readonly object locker = new object();
代码如下:
class ThreadSafe
{
static bool done;
static readonly object locker = new object();
static void Main()
{
new Thread (Go).Start();
Go();
}
static void Go()
{
lock (locker)
{
if (!done) { Console.WriteLine ("Done"); done = true; }
}
}
}