美文网首页
Monitor.TryEnter方法和lock语句的使用注意

Monitor.TryEnter方法和lock语句的使用注意

作者: 价值投机168 | 来源:发表于2020-06-10 16:54 被阅读0次

    在写代码时,习惯性的用了
    lock (searchLock)
    {
    .......................
    }
    刚开始也没发现有什么不妥,可后来发现效率上有点问题。原因是lock会在外面等直到占用的线程退出下一个线程才能进去,当有大批量的数据访问时容易造成阻塞。而Monitor.TryEnter无论有没有获取对象锁都会返回结果。于是将代码改为如下:
    if (Monitor .TryEnter(searchLock))
    {
    try //注意一定要try呀
    {
    //do somthing
    }
    finally
    {
    Monitor.Exit(searchLock);
    }
    }
    else
    {
    //other
    }

    相关文章

      网友评论

          本文标题:Monitor.TryEnter方法和lock语句的使用注意

          本文链接:https://www.haomeiwen.com/subject/uzuptktx.html