【发布时间】:2019-06-20 13:07:11
【问题描述】:
阅读后,我可以理解 C# 的 Lock 在内部使用 Monitor.Enter 并且 Monitor.Enter 通过使用 .Net CLR 的 Sync 块标志获取关键部分的锁。
但是,我有兴趣了解当 2 个并行线程同时执行以获取同步块标志时获取锁的逻辑/技术。 考虑到获取锁也是在用户代码之上的操作,怎么可能同一时间不同线程对共享资源的相同操作不会发生冲突。
【问题讨论】:
-
看看这个link。
-
感谢@lilo0 spin-wait loop 和线程中的进一步解释向我解释了它是多么困难。我可以实现逻辑谢谢。
标签: .net multithreading