16得票8回答
“Critical Section”、“Critical Region”和“Constrained Execution Region”之间的区别。

这实际上是三个不同的概念,还是我自己搞混了?(我一直在同时阅读关于线程和垃圾回收的文章,把自己搞糊涂了。) “关键段” - 我认为这可能只是指你不希望多个线程同时访问的代码部分,即在锁定和Monitor.Enter/Exit语句内部吗? “关键区域”- 这里真的没有头绪 - MSDN说的大...

16得票5回答
在关键部分中使用pthread_cond_signal()

我在A线程中有如下代码片段,它使用pthread_cond_wait()进行阻塞。pthread_mutex_lock(&my_lock); if ( false == testCondition ) pthread_cond_wait(&my...

14得票2回答
.NET应用程序因GC线程死锁而挂起

我们的应用程序使用了托管 (C#) 和非托管 (C++) 代码混合,遇到了问题。基本上我们有一个exe调用一堆程序集,其中一个程序集是我们C++库的MC++包装器。该应用程序是控制台应用程序。大部分时间工作正常,但偶尔会无错误或异常而挂起。 使用内存转储和符号,我们能够在WinDbg中进行一...

13得票4回答
在CUDA中实现临界区

我正在尝试使用原子指令在CUDA中实现一个关键段,但是遇到了一些问题。我已经创建了一个测试程序来展示这个问题:#include <cuda_runtime.h> #include <cutil_inline.h> #include <stdio.h> __...

13得票3回答
C#数组的线程安全性

拥有两个不同的线程: 一个从C#数组中读取(例如,从第一个位置开始) 另一个将数据写入到相同的C#数组但是写入到不同的位置(例如,写入到最后一个位置) 这种情况下是否线程安全? (我指的是在没有锁定读取或写入的情况下)

12得票1回答
用SRW锁替代关键段(critical section)

如果应用程序的目标是Windows Vista或更高版本,我们是否可以将所有critical sections替换为SRW locks?由于关键部分是互斥的,在使用上它等同于SRW锁的独占模式,对吗?根据MSDN,SRW既优化了速度又优化了空间。这样做有什么缺点吗?我不确定Microsoft内...

12得票2回答
MPI中的临界区是什么?

我有一些代码可以将2D数组打印到标准输出。问题在于运行时,每个进程都会写入输出并且数据会重叠,使其无法使用。 如何在MPI中构建关键部分,以便只有一个进程进入我显示输出的部分? 我正在使用OpenMPI。

11得票2回答
ARM中的临界区

我有在AVR处理器家族上实现关键段的经验,在这种情况下,您只需要禁用中断(当然要使用内存屏障),执行关键操作,然后重新启用中断:void my_critical_function() { cli(); //Disable interrupts // Mission critica...

11得票6回答
.crt节是什么?这个警告有什么意义?

我最近遇到了这个警告(VC++ 2010) warning LNK4210: .CRT 部分存在;可能存在未处理的静态初始化程序或终止程序。 我认为这是临界区的问题。自从学习操作系统课程以来已经有一段时间了,所以我无法确定其确切含义。如果我没记错,临界区与共享资源有关。那么这个警告与什么相...

11得票2回答
使用关键段避免Delphi中的缓存一致性问题?

我刚刚阅读了一篇MSDN文章,"同步和多处理器问题", 该文章解决了多处理器机器上的内存缓存一致性问题。这对我来说真是大开眼界,因为我从未想过在他们提供的示例中可能存在竞态条件。该文章解释了内存写入可能不会按照代码中编写的顺序实际发生(从其他CPU的角度来看)。这对我来说是一个新概念! 该文...