今天考試被電了一回,題目是
public class A
{
public int count = 0;
public void AddCount(int value)
{
count += value;
}
}
public void test()
{
A recordA = new A();
Threand thread = new Thread(delegate()
{
recordA.AddCount(1);
}
thread.Start();
recordA.AddCount(1);
}
這邊是因為thread.Start()時,就有可能和下一行recordA.AddCount(1);同時執行,並且在拿count這個變數的值時,有可能都拿到相同的值。所以這邊應該在AddCount function內加lock。
沒有留言:
張貼留言