public static int[] a = new int[3];
public static int misses = 0;
public static int allgood = 0;
public static object mutex = new object();
for(int i = 0; i < 1000000; i++)
public static int[] bar()
public static void alice()
for(int i = 0; i < 1000000; i++)
Console.WriteLine("MISS c[0]: {0} c[2]: {1}", c[0], c[2]);
public static void Main()
Thread first = new Thread(new ThreadStart(foo));
Thread second = new Thread(new ThreadStart(alice));
Console.WriteLine("main, foo and bar now execute concurrently...");
Console.WriteLine("misses: {0} allgood: {1}", misses, allgood);
Console.WriteLine("foo and bar completed....");