public static void Start()
        {
            var t= new TestAccessByDifferentThreads();
            var threads = new Task[10];
            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new Task(t.S1);
                threads[i].Start();
            }
            Task.WaitAll(threads);

            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new Task(t.S2);
                threads[i].Start();
            }
            Task.WaitAll(threads);

            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new Task(t.S3);
                threads[i].Start();
            }
            Task.WaitAll(threads);

            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new Task(t.S4);
                threads[i].Start();
            }
            Task.WaitAll(threads);

            Console.WriteLine(t.res1);
            Console.WriteLine(t.res2);
            Console.WriteLine(t.res3);
            Console.WriteLine(t.res4);
        }