10
[线程静态]
私有静态 Foo _foo;

公共静态 Foo CurrentFoo {
   得到 {
     如果(_foo == null){
         _foo = new Foo();
     }
     返回_foo;
   }
}

之前的代码线程安全吗?还是我们需要锁定方法?

4

2 回答 2

15

如果它的 ThreadStatic 每个线程有一个副本。因此,根据定义,它的线程安全。

这个博客有一些关于 ThreadStatic 的好信息。

于 2009-07-06T15:30:36.017 回答
2

A[ThreadStatic]是线程本地存储的编译器/语言魔法。换句话说,它是绑定到线程的,所以即使有上下文切换也没关系,因为没有其他线程可以直接访问它。

于 2009-07-06T16:46:02.643 回答