zoukankan      html  css  js  c++  java
  • 线程同步lock and monitor

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace ConsoleApplication1
    {
        class Print
        {
            public void printNumbers()
            {
                Monitor.Enter(this);
                try
                {
                    for (int i = 0; i < 10; i++)
                    {
                        Console.Write("{0}\t", i);
                    }
                    Console.WriteLine();
                }
                finally
                {
                    Monitor.Exit(this);
                }
            }

            public void printNumberslock()
            {
                lock (this)
                {
                    for (int i = 0; i < 10; i++)
                    {
                        Console.Write("{0}\t", i);
                    }
                    Console.WriteLine();
                }
            }
        }

        
        class Program
        {
            static void Main(string[] args)
            {
                Print p = new Print();
                Thread[] threads = new Thread[10];

                for (int i = 0; i < 10; i++)
                {
                    threads[i] = new Thread(new ThreadStart(p.printNumbers));
                    threads[i].Name = string.Format("thread#{0}", i);
                }
                    foreach (Thread t in threads)
                    {
                        Console.WriteLine(t.Name );
                        t.Start();
                    }
            }
        }
    }

     

  • 相关阅读:
    如何把方法(函数)当参数传递
    致加西亚的信 摘录
    算法:C#数组去除重复元素算法研究
    [转帖]SQL SERVER 2005 安全设置
    [转].NET学习网站收集
    C#你真的懂了吗 啥叫引用2
    比IETEST更好用的浏览器兼容性测试软件[绿色]
    [转帖]使用asp.net访问Oracle的方法汇总
    影响力密码 信任你自己
    [转]自动刷新页面的实现方法总结
  • 原文地址:https://www.cnblogs.com/qixue/p/1587812.html
Copyright © 2011-2022 走看看