zoukankan      html  css  js  c++  java
  • 关于 Mutex 与 Lock 无聊的测试

    一个朋友反映说,

    使用 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不会自动的。

    示例代码

  • 相关阅读:
    使用HSQLDB 客户端(jvm自带数据库使用技巧)
    PageHelper分页
    使用exe4j打包Java程序
    有图形界面的聊天程序
    同时收发消息
    服务端和客户端互聊
    使用Scanner
    收发字符串
    收发数字
    建立连接
  • 原文地址:https://www.cnblogs.com/zbw911/p/2445350.html
Copyright © 2011-2022 走看看