.net framework 4中SpinLock和lock的区别

 SpinLock,自旋锁。尝试获取该锁的线程持续不断的check是否可以获得。此时线程仍然是激活状态,只是在空转,浪费cpu而已。但是spinlock避免了线程调度和上下文切换,如果锁的时间极短的话,使用该锁反而效率会高。

 而lock是线程被block了。这将引起线程调度和上下文切换等行为。

Spinlock在自旋极短的时间内是可以采取的。

Spinlocks是结构类型。

不能调用Enter两次在同一个spinlock上面。

SpinLock允许你查询是否锁已经被其他线程占用,通过IsHeld属性。

你可能感兴趣的:(thread,职场,net,休闲)