紧接上回。 Monitor.Enter究竟有没有自旋,还记得在Monitor.Wait初探系列中我们顺带也分析了Enter对应的代码逻辑嘛?当时通过阅读代码以及windbg调试跟踪两种方式都确认等待锁的线程最终会调用WaitXXXX进入内核态。现在再来回顾那段代码,就是AwareLock类的AwareLock::Enter方法: void AwareLock::Enter(){ CONT... Read More
写下标题,突然发觉有点淫荡了,把旋改成慰,一字之差,效果全然不同,性质也千差万别.淫者见淫,仁者未必仁。本文写作的初衷是探讨lock或者Monitor.Enter的实现是否用到了自旋,也即所谓的spinning。因为网上众多的意见和看法都是lock是C#/NET中关于线程同步的一种轻量级实现,类似于Windows临界区CriticalSection。那麽究竟有多像,像在哪里?由此也激发了一个偷窥者... Read More