C#多线程中的互斥锁Mutex怎么用
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容主要讲解"C#多线程中的互斥锁Mutex怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#多线程中的互斥锁Mutex怎么用"吧!一、简介Mu
千家信息网最后更新 2025年01月17日C#多线程中的互斥锁Mutex怎么用
本篇内容主要讲解"C#多线程中的互斥锁Mutex怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#多线程中的互斥锁Mutex怎么用"吧!
一、简介
Mutex的突出特点是可以跨应用程序域边界对资源进行独占访问,即可以用于同步不同进程中的线程,这种功能当然这是以牺牲更多的系统资源为代价的。
主要常用的两个方法:
public virtual bool WaitOne() 阻止当前线程,直到当前 System.Threading.WaitHandle 收到信号获取互斥锁。
public void ReleaseMutex() 释放 System.Threading.Mutex 一次。
二、代码
案例一:
class Program { private static Mutex mutex = new Mutex(); static void Main(string[] args) { Thread[] thread = new Thread[3]; for (int i = 0; i < 3; i++) { thread[i] = new Thread(ThreadMethod1);//方法引用 thread[i].Name = "Thread-" + (i+1).ToString(); } for (int i = 0; i < 3; i++) { thread[i].Start(); } Console.ReadKey(); } public static void ThreadMethod1(object val) { mutex.WaitOne(); //获取锁 for (int i = 1; i <=5; i++) { Console.WriteLine("{0}循環了{1}次", Thread.CurrentThread.Name, i); } mutex.ReleaseMutex(); //释放锁 } }
运行结果:
案例二:
class Program { private static Mutex mutex = new Mutex(); private static int sum = 0; static void Main(string[] args) { Tasktask = new Task (ThreadFunction); task.Start(); Console.WriteLine($"{DateTime.Now} task started!"); Thread.Sleep(2000);//Main主線程 Console.WriteLine($"{DateTime.Now} Get siginal in Main!"); mutex.WaitOne(); Console.WriteLine($"{DateTime.Now} Get siginal in main!"); Console.WriteLine($"{DateTime.Now} Result is {task.Result}"); Console.ReadKey(); } private static int ThreadFunction() { Console.WriteLine($"{DateTime.Now} Get siginal in ThreadFunction!"); mutex.WaitOne(); //获取锁 for (int i = 0; i <= 10; i++) { sum += i; Thread.Sleep(1000); } Console.WriteLine($"{DateTime.Now} Release mutex in ThreadFunction!"); mutex.ReleaseMutex(); //释放锁 return sum; } }
运行结果:
到此,相信大家对"C#多线程中的互斥锁Mutex怎么用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
C#
方法
内容
更多
案例
结果
资源
学习
运行
不同
实用
更深
两个
代价
代码
信号
兴趣
功能
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库设计开发的意义
我的世界极限生存服务器附魔石
应用软件开发工具三个基本功能
高一计算机网络技术书
a股网络安全公司有那些
北辰区网络安全委员
重庆前端软件开发大概多少钱
网络安全手抄报的内容有
洪洞县法院网络安全等级保护中标
魔兽世界克隆服务器
数据库课程设计郭学俊
苏州网络安全年会
教育软件开发的企业描述
上海品歆网络技术有限公司
网络安全法法心得体会
电信哪个区服务器好
新知讯网络技术有限公司招聘
慈溪游戏软件开发外包
开了黑魂3不能连接服务器
网络安全宣传2018
软件开发公司哪家价格实惠
网络安全革命支撑
网络安全教育软件
城市天际线用不用开启服务器
网络技术的象征图案
关于加强网络安全教育方案
云服务器费用 代驾app
怎么组织人员进行软件开发
武汉众乐商通网络技术骗子
分布式事务中数据库安装