1. public class Book
{
      private static List<string> _list;
      static  Book()
      {
             list = new  List<string>();
      }      static do()
      {
             对list进行操作
      }
}
像这种情况
虽然静态构造函数只会初始化1次,但是这个存在线程安全问题么

解决方案 »

  1.   


    1. public class Book
    {
          public static List<string> _list;
          static  Book()
          {
                 list = new  List<string>();
          }
     
          static do()
          {
                 对list进行操作 比如 add
          }
    }如果把private 改成 public 是不是 就不安全了呢
      

  2.   

    我对线程安全是理解是 ,多个线程同时访问方法 各自 产生的结果  和 一个 线程 各自 访问方法 产生的结果 是一样  不会错乱 就是线程安全。
    这里的list 多个线程可以对它进行操作, 难道不会产生数据错乱么。比较模糊
      

  3.   

    这跟static没关系。即使没有标识为static的List成员,也同样不是线程安全的。
    应为List本来就不是线程安全的。你要保证线程安全,就用lock