线程问题,大家帮忙!~
using System;
using System.Threading;
class UsingLock
{
static Thread[] thread = new Thread[3];
int addSum ;
static void Main()
{
UsingLock myUsingLock = new UsingLock();
for(int i=0;i<3;i++)
{
Thread myThread = new Thread(new ThreadStart(myUsingLock.DoSum));
thread[i] = myThead;
thread[i].Name = "线程" + i;
}
for(int i=0;i<3;i++)
{
thread[i].Start();
}
Console.ReadLine();
}
void Dosum()
{
for(int i=0;i<10;i++)
{
//lock(this)
//{
addSum += 2;
Thread.Sleep(1);
Console.WriteLine(Thread.CurrentThread.Name+"执行第 " + i +" 次,addSum=" + addSum);
//}
}
}
}
/////////////////////////////// 部分执行结果////////////////
线程0,执行第2次,addSum =18
线程1,执行第2次,addSum =20
线程2,执行第2次,addSum =22
线程0,执行第3次,addSum =24
线程1,执行第3次,addSum =26
线程2,执行第3次,addSum =28
线程0,执行第4次,addSum =30
线程1,执行第4次,addSum =32
线程2,执行第4次,addSum =34
线程0,执行第5次,addSum =36
线程1,执行第5次,addSum =38
线程2,执行第5次,addSum =40
线程1,执行第6次,addSum =42
线程2,执行第6次,addSum =44
线程0,执行第6次,addSum =46
线程1,执行第7次,addSum =48
线程2,执行第7次,addSum =48
线程0,执行第7次,addSum =48
线程1,执行第8次,addSum =54
线程2,执行第8次,addSum =56
问题:
为什么执行第7次时,线程1线程2线程0结果都是48呢?请问这是怎么回事?
在执行第8次时线程1 结果怎么成为54的??