简介:
关于锁操作这里不再过多介绍,有关锁的知识很多地方都会用到,例如:进程锁、数据库锁等等,了解这些是非常必要的,下面做一下关于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) 释放对象上的锁并阻止当前线程,直到它重新获取该锁。
案列: 待续...