码迷,mamicode.com
首页 > 编程语言 > 详细

多线程之线程同步

时间:2014-08-15 17:39:39      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:blog   for   ar   2014   art   div   代码   line   

Pulse(lockObj)表示释放当前被lock的lockObj,容许其它线程调用。(相当于临时挂起当前线程)

Wait(lockObj)表示等待当前被其它线程占用的lockObj。

以下的代码将会交替运行两个线程:

class TickTock
    {
        object lockOn = new object();
        public void Tick(bool running)
        {
            lock (lockOn)
            {
                if (!running)
                {
                    Monitor.Pulse(lockOn);
                    return;
                }
                Console.Write("Tick ");
                Monitor.Pulse(lockOn);//let tock() run
                Monitor.Wait(lockOn);//wait for tock() to complete
            }
        }
        public void Tock(bool running)
        {
            lock (lockOn)
            {
                if (!running)
                {
                    Monitor.Pulse(lockOn);
                    return;
                }
                Console.WriteLine("Tock");
                Monitor.Pulse(lockOn);
                Monitor.Wait(lockOn);
            }
        }
    }



多线程之线程同步,布布扣,bubuko.com

多线程之线程同步

标签:blog   for   ar   2014   art   div   代码   line   

原文地址:http://www.cnblogs.com/hrhguanli/p/3915175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!