闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

关于Monitor和lock的锁操作 笔记

Posted on 2020-09-18 21:22  闪电龟龟  阅读(528)  评论(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) 释放对象上的锁并阻止当前线程,直到它重新获取该锁。

案列:  待续...