我看了杰弗里·里希特的视频(点击查看确切的线路),他说:
在 Event-wait-handles 或 Semaphore 等上使用 Monitor.Enter 和 Monitor.Lock 总是更好,因为它们(monitor.X)使用内核对象,但只有在存在争用时才会使用它们。如果没有争用,他们就不会使用这些对象。
我可能在这里遗漏了一些东西,但是当我这样做时:
lock(myObj)
{
...
}
我认为可能有不止一个线程想要进入临界区。
那么,根据上面的信息,如果没有争用,锁就不会被使用?(如果另一个线程即将进入 1 ms 后怎么办?)