110,561
社区成员
发帖
与我相关
我的任务
分享
public const long max = 100;
static string buffer = "0";
private object hoho = new object();
static void Main(string[] args)
{
Program test = new Program();
Thread a = new Thread(new ThreadStart(test.aDowork));
a.Start();
Thread b = new Thread(new ThreadStart(test.bDowork));
b.Start();
Thread c = new Thread(new ThreadStart(test.cDowork));
c.Start();
Thread d = new Thread(new ThreadStart(test.dDowork));
d.Start();
a.Join();
b.Join();
c.Join();
d.Join();
Console.WriteLine("Resultis{0}", buffer);
}
void aDowork()
{
for (long i = 1; i < max / 4; i++)
{
lock(hoho)
{
buffer = (long.Parse(buffer) + i).ToString() ;
Console.WriteLine("{0}+{1}", buffer, i);
Console.ReadKey();
}
}
}
void bDowork()
{
for (long i = max / 4; i < max/2; i++)
{
lock (hoho) { buffer = (long.Parse(buffer) + i).ToString(); }
Console.WriteLine("{0}+{1}", buffer, i);
}
}
void cDowork()
{
for (long i = max / 2; i < max * 3 / 4; i++)
{
lock (hoho) { buffer = (long.Parse(buffer)).ToString(); }
Console.WriteLine("{0}+{1}", buffer, i);
}
}
void dDowork()
{
for(long i = max*3/4;i<=max;i++)
{
lock (hoho) { buffer = (long.Parse(buffer)).ToString(); }
Console.WriteLine("{0}+{1}", buffer, i);
}
}