闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
随笔 - 169, 文章 - 0, 评论 - 1, 阅读 - 79596
  博客园  :: 新随笔  :: 管理

关于Monitor和lock的锁操作 笔记

Posted on   闪电龟龟  阅读(536)  评论(0编辑  收藏  举报

简介:

关于锁操作这里不再过多介绍,有关锁的知识很多地方都会用到,例如:进程锁、数据库锁等等,了解这些是非常必要的,下面做一下关于CRL书本中再第十一章提到的monitor,课本只是用到了也没怎么讲,所以在这里做个笔记。

monitor相对于lock可以说是更高级/更好,主要了解有两方面:

1.在功能上,monitor不仅仅具有lock的功能,monitor还具有tryenter(event,time)、wait()/pause()。

2.在性能上,底层IL使用的就是monitor,如果在代码中使用lock,那么还需要在低层转换为monitor。

关于monitor的具体解析(纯属摘抄):(具体可查看该链接(https://www.cnblogs.com/wangyonglai/p/8241724.html)

Enter(Object) 在指定对象上获取排他锁。
Exit(Object) 释放指定对象上的排他锁。

IsEntered 确定当前线程是否保留指定对象锁。
Pulse 通知等待队列中的线程锁定对象状态的更改。
PulseAll 通知所有的等待线程对象状态的更改。
TryEnter(Object) 试图获取指定对象的排他锁。
TryEnter(Object, Boolean) 尝试获取指定对象上的排他锁,并自动设置一个值,指示是否得到了该锁。
Wait(Object) 释放对象上的锁并阻止当前线程,直到它重新获取该锁。

案列:  待续...

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示