博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 Mutex 与 Lock 无聊的测试
阅读量:5288 次
发布时间:2019-06-14

本文共 523 字,大约阅读时间需要 1 分钟。

一个朋友反映说,

使用 Mutex 时出现 “由于出现被放弃的mutex等待过程结束” 的问题。

后来经过模拟及查MSDN ,发现 如果 在 线程中使用 mutex

使用类似于

   void process()

  {

mutex.WaitOne();

   这里做某些操作, 然后出现异常了

   throw new Exception("");

 

 mutex .ReleaseMutex();

 

   }

出现上面的代码就有问题了。

改为 try{ .....  } finally { mutex .ReleaseMutex(); } 就好了。

 

接下来,朋友提出了使用 lock(obj) 的方法,这个方法没有问题,也可以解决同步的问题。

 

再后来, 这两种方式哪个更高呢,我就此问题做了一个测试,

测试结果表明   mutex 与 lock 两种方案在性能上无太大差别。

 

得出以下结论

两者性能方面无太大差异,

Lock 用于 代码块更好。

Mutex 可控性更好一些。

Lock 中出现异常会自动  unlock

但 Mutex不会自动的。

 

 

 

 

 

转载于:https://www.cnblogs.com/zbw911/archive/2012/04/13/2445350.html

你可能感兴趣的文章
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
An easy problem
查看>>
MauiMETA工具的使用(一)
查看>>
LeetCode: Anagrams 解题报告
查看>>
Qt 中获取本机IP地址
查看>>
070102_赌博设计:概率的基本概念,古典概型
查看>>
IT人生的价值和意义 感觉真的有了
查看>>
JS DOM对象
查看>>
OGR – Merging Multiple SHP files
查看>>
创业公司该不该被收购?(转)
查看>>
sqlserver 行转列、列转行[转]
查看>>
【IScroll深入学习】解决IScroll疑难杂症
查看>>
python 数据类型
查看>>
108-PHP类成员protected和private成员属性不能被查看数值
查看>>
css控制height充满浏览器视口
查看>>
python学习之 - XML
查看>>
Python--GIL 详解
查看>>
大道至简读后感(第四章)
查看>>
IDA IDC Tutorials: Additional Auto-Commenting
查看>>
k8s-存储卷1-十二
查看>>