zoukankan      html  css  js  c++  java
  • c# mutex

    什么是Mutex

      “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。互斥量比临界区复杂,因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。.Net中mutex由Mutex类来表示。

    实现方式一: 使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.C#实现如下: 
    把program.cs文件里的Main()函数改为如下代码: 
    static void Main() 
    { 
      bool runone; 
      System.Threading.Mutex run = new System.Threading.Mutex(true, "jiaao_test", out runone); 
      if (runone) 
      { 
        run.ReleaseMutex(); 
        Application.EnableVisualStyles(); 
        Application.SetCompatibleTextRenderingDefault(false); 
        Application.Run(new Form1()); 
      } 
      else 
      { 
      MessageBox.Show("已经运行了一个实例了。"); 
      } 
    }

  • 相关阅读:
    kubernetes构架及组件介绍
    二进制部署k8s
    Git
    Redis sentinel
    redis主从复制
    k8s安装
    基于Jenkins实现可腹部回滚的cicd平台
    Redis基础命令和持久化
    构建自动发现的Docker服务架构
    Redis
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14220521.html
Copyright © 2011-2022 走看看