Shared resource without lock
using System;
using System.Threading;
class MainClass
{
private int Runs = 0;
public void CountUp()
{
while (Runs < 10)
{
int Temp = Runs;
Temp++;
Console.WriteLine(Thread.CurrentThread.Name + " " + Temp);
Thread.Sleep(1000);
Runs = Temp;
}
}
public void RunThreads()
{
Thread t2 = new Thread(new ThreadStart(CountUp));
t2.Name = "t2";
Thread t3 = new Thread(new ThreadStart(CountUp));
t3.Name = "t3";
t2.Start();
t3.Start();
}
public static void Main()
{
MainClass ex = new MainClass();
ex.RunThreads();
}
}
Output t2 1
t3 1
t2 2
t3 2
t2 3
t3 3
t2 4
t3 4
t2 5
t3 5
t2 6
t3 6
t3 7
t2 7
^CTerminate batch job (Y/N)? n
|
HTML code for linking to this page:
Related in same category :
-
-
-
-
-
-
|