C#多线程中的互斥锁Mutex怎么用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"C#多线程中的互斥锁Mutex怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#多线程中的互斥锁Mutex怎么用"吧!一、简介Mu
千家信息网最后更新 2025年11月07日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) { Task task = 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安全错误
数据库的锁怎样保障安全
浙江超级计算套料软件开发商
高清视频软件开发
联想服务器电源损坏
泰兴多功能网络技术多少钱
互联网网络安全研究院
全球服务器cpu累计所有产量
山东云空间装饰设计服务器
怎么我的数据库类型
全椒县网络安全
淮北企业软件开发外包
vba提取对比一列数据库
悯雨岛服务器 什么区别
征信数据库的相关使用标准
三级网络技术考什么16
dell服务器备份
小型互联网科技公司财务问题
校园网络安全通讯稿件范文
迷你世界服务器黑科技
从事网络安全专业的毕业生
服务器端是什么意思
数字媒体技术考研考数据库吗
多线程服务器调试方法
年审数据库
我的世界怎样知道服务器地址
淮北企业软件开发外包
网络安全产品部署
二维码如何访问数据库
网络安全方面重大事件总结
怀柔区通用软件开发价位
软件开发文档电子书