zoukankan      html  css  js  c++  java
  • Monitor用法

    Monitor 类通过向单个线程授予对象锁来控制对对象的访问。 对象锁提供限制访问代码块(通常称为临界区)的能力。 当一个线程拥有对象的锁时,其他任何线程都不能获取该锁。 还可以使用 Monitor 来确保不会允许其他任何线程访问正在由锁的所有者执行的应用程序代码节,除非另一个线程正在使用其他的锁定对象执行该代码。

    作用和Lock相同

    public class MonitorDemo
        {
            public void ShowMsg(object obj) {
                Monitor.Enter(typeof(MonitorDemo));
                Console.WriteLine(string.Format("显示信息:{0},并停留5秒,当前时间:",obj.ToString(),DateTime.Now));
                Thread.Sleep(5000);
                Monitor.Exit(typeof(MonitorDemo));
            }
        }
    
    
     Thread thread = null;
                MonitorDemo monitor=new MonitorDemo();
                for (int i = 0; i < 3; i++)
                {
                    thread = new Thread(new ParameterizedThreadStart(monitor.ShowMsg));
                    thread.Start(i);
                }

    运行结果:

    Monitor Wait Pulse方法用起来可以实现线程互斥:

    例子:http://www.cnblogs.com/free722/archive/2011/03/25/1995136.html

  • 相关阅读:
    初步了解Ajax
    什么是applet
    FilterLog代码分析
    Async分析
    HttpServletRequest hrequest
    xml的定义用途
    企业级与应用级的区别
    未来规划
    黄金点游戏
    hashCode与eqauls
  • 原文地址:https://www.cnblogs.com/zyhblogs/p/4001958.html
Copyright © 2011-2022 走看看