public void Run()
        {
            var threadSafeClass = new ThreadSafeClass();

            var thread1 = new Thread(threadSafeClass.Run)
            {
                Name = "Thread 1"
            };
            var thread2 = new Thread(threadSafeClass.Run)
            {
                Name = "Thread 2"
            };

            thread1.Start();
            thread2.Start();
        }
        private static void TestThreadSafeClass()
        {
            PrintUtility.PrintSubTitle("Thread Safe Class");

            ThreadSafeClass tsClass = new ThreadSafeClass();

            tsClass.SetItem("Mary");
            tsClass.SetItem("John");

            Thread thread1 = new Thread(new ParameterizedThreadStart(tsClass.PrintItems));

            thread1.Start("thread1");
            Thread thread2 = new Thread(new ParameterizedThreadStart(tsClass.PrintItems));

            thread2.Start("thread2");
            Thread thread3 = new Thread(new ParameterizedThreadStart(tsClass.PrintItems));

            thread3.Start("thread3");
        }