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();
                    }
            }
        }
    }

     

  • 相关阅读:
    Javascript异步编程的4种方法(阮一峰)
    vue 要点
    npm指南
    http请求状态及其含义表
    IOS 7层协议
    js模块化
    UITouch触摸事件
    UIGestureRecognizer手势识别
    UISegmentControl 、UIStepper
    UINavigationController
  • 原文地址:https://www.cnblogs.com/qixue/p/1587812.html
Copyright © 2011-2022 走看看