日期:2014-05-17  浏览次数:20412 次

急啊,高并发情况下静态变量会不会混乱
比如一个房间进来个人静态变量加1,可是高并发时,会不会2个人同时走到那一步,结果只加了1,而不是2,有没有这种可能?

------解决方案--------------------
加锁吧,参考下面代码
 public static void Main()
    {
        Person.Add(); //加一人
    }

   
    public class Person
    {
        public static int Count = 0;
        public static object SyncRoot=new object();
        public static void Add()  //加一人
        {
            lock(Person.SyncRoot) //锁
            {
                Count++;
            }
        }

    }

------解决方案--------------------
排队
或者加锁
都可以
------解决方案--------------------
静态变量不是线程安全的,可以使用下面的原子操作
Interlocked.Increment(Int32)
------解决方案--------------------
排队
 或者加锁
 都可以