美文网首页
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语句的使用注意

    在写代码时,习惯性的用了lock (searchLock){.......................}刚开始...

  • Lock锁

    1、官方文档 public interface Lock Lock实现提供比使用synchronized方法和语句...

  • java.util.concurrent.locks包下Lock

    Lock接口Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。此实现允许更...

  • Redissons实现分布式锁

    1.添加pom和配置文件 2.使用方法 lock和tryLock的区别:lock:加锁,会阻塞线程tryLock:...

  • Chromium中的线程同步

    1.Lock 线程互斥锁,使用方法: AutoLock的构造函数和析构函数里会调用Lock的acquire和rel...

  • C# 异步锁 await async锁,lock,Monitor

    异步方法内无法使用Monitor 和lock所以只能用System.Threading.SemaphoreSlim...

  • Unity c# Lock Thread

    Lock : 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:...

  • 2-Lock

    类介绍 类定位 定义了Lock的常用的方法。 类注意事项 lock的常用注意事项在上一章中已经写清楚了。此处主要关...

  • Lock 的使用

    Lock 的使用 使用 ReentrantLock 类 lock():获取锁 unlock():释放锁 效果和 s...

  • C语言基础3-结构语句

    注意:使用do-while结构语句时,while括号后必须有分号。 使用for语句应该注意:1、for循环中的“表...

网友评论

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

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