最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# mutex互斥量的深入解析

 更新時間:2014年01月23日 08:55:19   作者:  
本篇文章主要是對c#中的mutex互斥量進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助

互斥鎖(Mutex)

互斥鎖是一個互斥的同步對象,意味著同一時間有且僅有一個線程可以獲取它。

互斥鎖可適用于一個共享資源每次只能被一個線程訪問的情況

 函數(shù):

//創(chuàng)建一個處于未獲取狀態(tài)的互斥鎖

Public Mutex();

//如果owned為true,互斥鎖的初始狀態(tài)就是被主線程所獲取,否則處于未獲取狀態(tài)

 Public Mutex(bool owned);

 如果要獲取一個互斥鎖。應調(diào)用互斥鎖上的WaitOne()方法,該方法繼承于Thread.WaitHandle類

它處于等到狀態(tài)直至所調(diào)用互斥鎖可以被獲取,因此該方法將組織住主調(diào)線程直到指定的互斥鎖可用,如果不需要擁有互斥鎖,用ReleaseMutex方法釋放,從而使互斥鎖可以被另外一個線程所獲取

//Public Mutex(bool owned,name,out flag);

name為互斥量的名字,也就是說在操作系統(tǒng)中只有一個命名為name的互斥量mutex,如果一個線程得到這個name的互斥鎖,其他線程就無法得到這個互斥鎖了,必須等待那個線程對這個線程釋放

參考別人的博客的代碼實驗

復制代碼 代碼如下:

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

namespace myConApp
{
    class Test
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            bool flag = false;
            System.Threading.Mutex mutex = new System.Threading.Mutex(true, "Test", out flag);
            //第一個參數(shù):true--給調(diào)用線程賦予互斥體的初始所屬權
            //第一個參數(shù):互斥體的名稱
            //第三個參數(shù):返回值,如果調(diào)用線程已被授予互斥體的初始所屬權,則返回true
            if (flag)
            {
                Console.Write("Running");
            }
            else
            {
                Console.Write("Another is Running");
                System.Threading.Thread.Sleep(5000);//線程掛起5秒鐘
                Environment.Exit(1);//退出程序
            }
            Console.ReadLine();

        }
    }
}


 運行以上代碼生成的應用程序第一個實例,會得到結(jié)果

Running
 保持第一個運行狀態(tài),運行第二個實例,得到結(jié)果

Another is Running
 以上代碼中創(chuàng)建了一個mutex,從其參數(shù)的解釋中得知,第一個調(diào)用線程將得到互斥體的初始所屬權,如果不釋放的話,其他的線程得不到互斥體所有權

1.運行兩個工程,同時將以上代碼放入工程中,第一個工程運行,得到結(jié)果

Running
 保持第一個運行狀態(tài),運行第二個工程,得到結(jié)果

Another is Running

2.將一個工程中的System.Threading.Mutex mutex = new System.Threading.Mutex(true, "Test", out flag);改為

System.Threading.Mutex mutex = new System.Threading.Mutex(true, "Test1", out flag);

然后第一個工程運行,得到結(jié)果

Running
 保持第一個運行狀態(tài),運行第二個工程,得到結(jié)果

Running
則說明在系統(tǒng)中,mutex的name是在系統(tǒng)中是唯一的。

相關文章

  • C#實現(xiàn)大數(shù)字運算的實例代碼

    C#實現(xiàn)大數(shù)字運算的實例代碼

    這篇文章介紹了C#實現(xiàn)大數(shù)字運算的實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • C# Newtonsoft.Json用法詳解

    C# Newtonsoft.Json用法詳解

    本文主要介紹了C# Newtonsoft.Json用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C#中List用法介紹詳解

    C#中List用法介紹詳解

    本文詳細講解了C#中List用法介紹,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C# 多線程更新界面的錯誤的解決方法

    C# 多線程更新界面的錯誤的解決方法

    這篇文章主要介紹了C# 多線程更新界面的錯誤方法,由于一個線程的程序,如果調(diào)用一個功能是阻塞的,那么就會影響到界面的更新,導致使用人員操作不便。所以往往會引入雙線程的工作的方式,主線程負責更新界面和調(diào)度,而次線程負責做一些阻塞的工作,便有了下面春雨里方法
    2021-10-10
  • C#?線程切換后上下文都去了哪里(.NET高級調(diào)試分析)

    C#?線程切換后上下文都去了哪里(.NET高級調(diào)試分析)

    總會有一些朋友問一個問題,在 Windows 中線程做了上下文切換,請問被切的線程他的寄存器上下文都去了哪里?這個問題其實比較底層,如果對操作系統(tǒng)沒有個體系層面的理解以及做過源碼分析,其實很難說明白,這篇我們就從.NET高級調(diào)試的角度分析,需要的朋友可以參考下
    2023-12-12
  • C#實現(xiàn)XML文件操作詳解

    C#實現(xiàn)XML文件操作詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)XML操作文件,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C# 實現(xiàn)Table的Merge,Copy和Clone

    C# 實現(xiàn)Table的Merge,Copy和Clone

    這篇文章主要介紹了C# 實現(xiàn)Table的Merge,Copy和Clone,幫助大家更好的利用c#處理文件,感興趣的朋友可以了解下
    2020-12-12
  • C#生成帶二維碼的專屬微信公眾號推廣海報實例代碼

    C#生成帶二維碼的專屬微信公眾號推廣海報實例代碼

    這篇文章主要給大家介紹了關于利用C#如何生成帶二維碼的專屬微信公眾號推廣海報的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們一起來看看吧
    2018-12-12
  • C#之關于Base64簡單加密與解密方式

    C#之關于Base64簡單加密與解密方式

    這篇文章主要介紹了C#之關于Base64簡單加密與解密方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • C#使用DevExpress中的SplashScreenManager控件實現(xiàn)啟動閃屏和等待信息窗口

    C#使用DevExpress中的SplashScreenManager控件實現(xiàn)啟動閃屏和等待信息窗口

    這篇文章介紹了C#使用DevExpress中的SplashScreenManager控件實現(xiàn)啟動閃屏和等待信息窗口的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論

梁河县| 荣昌县| 大洼县| 衡水市| 本溪市| 荥阳市| 西充县| 尤溪县| 永川市| 赫章县| 扬州市| 开江县| 翼城县| 大宁县| 竹溪县| 九江县| 聂拉木县| 象州县| 林甸县| 固始县| 资阳市| 河北省| 行唐县| 修水县| 长岛县| 三原县| 资源县| 平潭县| 静乐县| 宜丰县| 三明市| 伊宁市| 绥阳县| 桐城市| 正镶白旗| 麦盖提县| 广汉市| 莱西市| 阿合奇县| 商丘市| 乌审旗|