测试——杂


static void Main()
        {
            Thread t1 = new Thread(Thread1);
            Thread t2 = new Thread(Thread2);
            t1.Start();
            Thread.Sleep(100);
            t2.Start();
        }

        static void Thread1()
        {
            Semaphore sema = new Semaphore(2, 3, "my");            
            sema.WaitOne();
            sema.WaitOne();
            Console.WriteLine("Thread1 get the Semaphore : ");
            Thread.Sleep(5000);           
            Console.WriteLine("Thread end");            
        }

        static void Thread2()
        {
            Semaphore sema = new Semaphore(0, 3, "my");
            sema.Release();
            bool b2 = sema.WaitOne();
            Console.WriteLine("Thread2 get the Semaphore : ");
            sema.Release();
        }

static void Main()
        {
            Thread t1 = new Thread(Thread1);
            Thread t2 = new Thread(Thread2);
            t1.Start();
            t2.Start();
          
        }

        static void Thread1()
        {
            bool flag;
            Mutex mutex = new Mutex(false  , "my",out flag);
            Console.WriteLine("Thread1 get the mutex : " + flag);
            Console.WriteLine("Thread1 等待3秒");
            Thread.Sleep(3000);
            Console.WriteLine("Thread1 等待3秒  结束");

            mutex.WaitOne();            
            Thread.Sleep(1000);           
            Console.WriteLine("Thread1 end");
            mutex.ReleaseMutex();
        }

        static void Thread2()
        {
            bool flag;
            Mutex mutex = new Mutex(true , "my", out flag);            
            mutex.WaitOne();
            Console.WriteLine("Thread2 get the Mutex : "+flag);
            Console.WriteLine("Thread2 end" );
            //mutex.ReleaseMutex();
        }
原文地址:https://www.cnblogs.com/mxw09/p/1990017.html