zoukankan      html  css  js  c++  java
  • c# 进程间同步实现



     转自msdn 的。。

    // This example shows how a Mutex is used to synchronize access
    // to a protected resource. Unlike Monitor, Mutex can be used with
    // WaitHandle.WaitAll and WaitAny, and can be passed across
    // AppDomain boundaries.
     
    using System;
    using System.Threading;

    class Test
    {
        
    // Create a new Mutex. The creating thread does not own the
        
    // Mutex.
        private static Mutex mut = new Mutex();
        
    private const int numIterations = 1;
        
    private const int numThreads = 3;

        
    static void Main()
        {
            
    // Create the threads that will use the protected resource.
            for(int i = 0; i < numThreads; i++)
            {
                Thread myThread 
    = new Thread(new ThreadStart(MyThreadProc));
                myThread.Name 
    = String.Format("Thread{0}", i + 1);
                myThread.Start();
            }

            
    // The main thread exits, but the application continues to
            
    // run until all foreground threads have exited.
        }

        
    private static void MyThreadProc()
        {
            
    for(int i = 0; i < numIterations; i++)
            {
                UseResource();
            }
        }

        
    // This method represents a resource that must be synchronized
        
    // so that only one thread at a time can enter.
        private static void UseResource()
        {
            
    // Wait until it is safe to enter.
            mut.WaitOne();

            Console.WriteLine(
    "{0} has entered the protected area"
                Thread.CurrentThread.Name);

            
    // Place code to access non-reentrant resources here.

            
    // Simulate some work.
            Thread.Sleep(500);

            Console.WriteLine(
    "{0} is leaving the protected area\r\n"
                Thread.CurrentThread.Name);
             
            
    // Release the Mutex.
            mut.ReleaseMutex();
        }
    }


  • 相关阅读:
    mysql那些事(1)手机号与座机号码如何存储
    分享一个PHP调用RestFul接口的函数
    php sprintf用法
    HTTP状态码详解
    PHP随机生成中国人姓名的类
    PHP计算两组经纬度坐标之间的距离
    PHP根据经纬度获取在范围坐标的数据
    PHP 利用QQ邮箱发送邮件「PHPMailer」
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    修改PHP上传文件大小限制
  • 原文地址:https://www.cnblogs.com/gwazy/p/832579.html
Copyright © 2011-2022 走看看