急啊,高并发情况下静态变量会不会混乱
比如一个房间进来个人静态变量加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)
------解决方案--------------------排队
或者加锁
都可以