首页 技术 正文
技术 2022年11月19日
0 收藏 652 点赞 2,885 浏览 885 个字
 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();//线程挂起5秒钟
Environment.Exit();//退出程序
}
当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。
[csharp] view plain copy
private static Mutex mut = new Mutex(); 两个线程访问资源需要互斥时,两个线程都要用互斥锁。线程A:
[csharp] view plain copy
//安全时才可以访问共享资源,否则挂起。检测到安全并访问的同时会上锁。
mut.WaitOne();
//代码
//...
//... //释放锁
mut.ReleaseMutex(); 线程B:
[csharp] view plain copy
//安全时才可以访问共享资源,否则挂起。检测到安全并访问的同时会上锁。
mut.WaitOne();
//代码
//...
//... //释放锁
mut.ReleaseMutex(); 参考资料:
c# 多线程 --Mutex(互斥锁):http://www.cnblogs.com/hsrzyn/articles/1588776.html
MSDN:http://msdn.microsoft.com/zh-cn/library/01985e8f(v=vs.80).aspx
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,992
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844