问题标签 [critical-region]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
8196 浏览

.net - “Critical Section”、“Critical Region”和“Constrained Execution Region”的区别

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

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

“关键区域” ——这里没有真正的线索——MSDN 说了类似“这告诉主机在该部分中抛出的异常可能会产生更广泛的影响”。并且“CLR 的主机,例如 Sql Server”可以选择“以不同的方式”处理关键区域内抛出的异常。不一样怎么办?为什么?而且,最重要的是,在哪些现实世界场景中,我可能需要将代码标记为关键区域?

“受约束的执行区域” - 我在阅读垃圾收集文章中的 CriticalFinalizerObject 时遇到了这个问题。

我可以从 MSDN 中了解到,这些区域之一中的代码以某种方式保证运行(但如何运行?),因此不得抛出“带外”异常。

什么是out-of-band exception? (我确实在谷歌上搜索过,但它只是问我是否是指“越界异常”)。

是否有任何未处理的异常?还是只有某些类型的例外?再一次,最重要的是,在哪些现实世界场景中我可能需要“受约束的执行区域”?

由于我完全不了解这些概念,因此我不确定这个问题除了“.NET”之外还需要什么标签。

0 投票
1 回答
132 浏览

c - 如何将客户端和服务器链接到同一个信号量

我正在处理一项使用 IPC 方案通过共享文件在“服务器”和“客户端”之间进行通信的任务。

共享文件是在名为 Data Reader 的服务器应用程序中创建的,同时还有一个初始化的信号量。代码在这里:

数据监视器(“客户端”)需要与此信号量保持联系,以确保它们不会同时交谈。我不确定客户端是否需要访问这个相同的信号量 ID,或者这两个进程一起在一个信号量中的协议是什么?

数据监视器的代码如下,它无法进入临界区,我认为它也不能正确连接到服务器进程。

0 投票
1 回答
105 浏览

multithreading - 多线程和临界区

如果我有许多线程同时运行,我怎样才能只允许 1 个线程进入临界区?另外,如果我在关键区域中有超过 1 个线程会发生什么?

0 投票
1 回答
96 浏览

c - 以下代码中是否有关键部分?

以下代码段由单个进程中的多个线程定期调用。这里的问题是,是否有关键部分?

第一个代码:

第二代码;

目前我认为没有任何关键部分,因为变量不会操纵相同的数据。但我不确定这一点。我对关键部分和多线程很陌生。

0 投票
0 回答
15 浏览

interrupt - 互斥和禁用中断

大家好,我有问题当一个进程进入临界区时,阻止其他进程进入同一临界区的一种方法是禁用中断我的问题是:好的,我们禁用了中断,所以硬件不能再停止这个过程,但是如果调度器说“好的,我正在阻止你,所以我可以运行另一个进程”并且这个新进程进入同一个关键区域然后我们遇到问题,因为这个进程将进入同一个关键区域。当这种情况发生时会发生什么?谢谢!