a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

c# mutex互斥量的深入解析

2020-01-24 02:50:13
字體:
來源:轉載
供稿:網友

互斥鎖(Mutex)

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

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

 函數:

//創建一個處于未獲取狀態的互斥鎖

Public Mutex();

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

 Public Mutex(bool owned);

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

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

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

name為互斥量的名字,也就是說在操作系統中只有一個命名為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);
            //第一個參數:true--給調用線程賦予互斥體的初始所屬權
            //第一個參數:互斥體的名稱
            //第三個參數:返回值,如果調用線程已被授予互斥體的初始所屬權,則返回true
            if (flag)
            {
                Console.Write("Running");
            }
            else
            {
                Console.Write("Another is Running");
                System.Threading.Thread.Sleep(5000);//線程掛起5秒鐘
                Environment.Exit(1);//退出程序
            }
            Console.ReadLine();

        }
    }
}


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

Running
 保持第一個運行狀態,運行第二個實例,得到結果

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

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

Running
 保持第一個運行狀態,運行第二個工程,得到結果

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

然后第一個工程運行,得到結果

Running
 保持第一個運行狀態,運行第二個工程,得到結果

Running
則說明在系統中,mutex的name是在系統中是唯一的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品久久久久久国产 | 欧美日韩中文在线 | 国产在线一区二区 | 99久久免费精品国产男女性高好 | 亚洲精品在线免费 | 国产精品毛片久久久久久 | 国产一区二区精品 | 日韩中文一区二区三区 | 亚洲欧美综合 | 手机看片169 | 91中文字幕在线 | 性人久久久 | 日韩激情一区二区 | 国产精品自产拍在线观看 | 日韩在线亚洲 | 日韩精品1区2区 | 欧洲成人在线视频 | 999精品视频 | 亚洲成人免费视频 | 欧美视频区 | 日韩av在线一区二区 | 欧美极品在线 | 亚洲欧美综合一区 | 久久久婷婷 | 免费在线日本 | 黄色av资源 | 欧美日韩高清一区 | 精品一区电影国产 | 一区二区在线电影 | 国模精品视频一区二区 | 伊人伊人 | 国产在线视频一区二区 | 黑人巨大精品欧美一区二区 | jizz欧美大片 | 91视频一区二区三区 | 久草视频观看 | 精品久久久久一区二区国产 | 国产精品日本一区二区不卡视频 | 另类五月天 | 欧美三级电影在线播放 | www.色涩涩.com网站 |