这样的语法:
Object thisLock = new Object(); lock (thisLock) { // Critical code section }
创建的是object基类对象,那么为什么给一个基类对象加锁就能在此确保只有一个线程位于代码的临界区?它的实现原理是什么?
每一个对象都有一个 "同步索引块" 的东西。
能不能具体说下?
@怀川: 锁的话,去看书吧。
lock应该是 自旋锁+内核锁(逃,我不记得了。
占用条件是 同步索引块 中有标识
@长蘑菇星人: 看哪本书?
@怀川: CLR
@长蘑菇星人: 谢谢!
没有为什么,下面这么做就具备该能力。
你问汽车为什么能刹车 —— 因为有刹车系统!