标签: critical-region

"临界区","临界区"和"约束执行区"之间的区别

这些实际上是三个不同的概念还是我变得混乱?(我一直在阅读有关线程和垃圾收集的文章,并让自己感到困惑.)

"关键部分" - 我认为这可能只是您不希望多个线程同时访问的代码段的术语,即内部锁和Monitor.Enter/Exit语句?

"关键区域" - 这里没有真正的线索 - MSDN说的是"这告诉主持人该部分内的异常可能会产生更广泛的影响".并且"CLR的主机,例如Sql Server"可以选择"以不同方式"处理在关键区域内抛出的异常.不同如何?为什么?而且,最重要的是,我需要将代码标记为关键区域的真实场景?

"约束执行区" - 我在阅读垃圾收集文章中的CriticalFinalizerObject时遇到过这种情况.

我在MSDN上可以理解的是,其中一个区域内的代码在某种程度上可以保证运行(但是如何?)因此必须抛出"带外"异常.

什么是out-of-band exception?(我确实谷歌了,但它只是问我是否意味着"超出界限").

是否有任何未处理的例外?或者只是某些类型的例外?而且,最重要的是,在现实世界的情景中,我可能需要一个"受限制的执行区域"?

由于我根本不理解这些概念,我不确定这个问题除了".NET"之外还需要什么标签.

.net critical-section critical-region constrained-execution-reg

14
推荐指数
2
解决办法
6848
查看次数