7得票6回答
使用EnterCriticalSection时出现的问题

我需要在多个线程中操作数组,因此我使用CRITICAL SECTION来独占地访问数据。 这是我的模板: #include "stdafx.h" #ifndef SHAREDVECTOR_H #define SHAREDVECTOR_H #include <vector> #i...

7得票1回答
为什么我的线程被一个未被任何东西持有的临界区块阻塞?

我在C++中遇到了一个关键部分的问题。我的窗口无响应,当我转储进程时,我可以看到线程正在等待关键部分: 16 Id: b10.b88 Suspend: 1 Teb: 7ffae000 Unfrozen ChildEBP RetAddr 0470f158 7c90df3c ntdll...

7得票2回答
C++中的关键段和返回值

在尝试从头创建一个线程安全的容器类时,我遇到了从访问方法返回值的问题。例如,在Windows中: myNode getSomeData( ) { EnterCriticalSection(& myCritSec); myNode retobj; // fill retob...

7得票1回答
InitializeCriticalSectionAndSpinCount,是否有默认的自旋计数?

API方法InitializeCriticalSectionAndSpinCount允许您设置自旋计数器,因此当调用EnterCriticalSection时,它使用自旋锁循环尝试多次获取资源。只有在所有尝试失败后,线程才转换到内核模式进入等待状态。 如果调用“正常”的InitializeC...

7得票1回答
用于共享内存的强大CRITICAL_SECTION?

我们有一些数据结构在Windows上的多个进程之间共享。(通过由所有这些进程加载的DLL中的共享数据段。) 我们需要同步某些访问,并且我们测量到使用Win32 Mutex 的性能损失太大。 由于其高级功能,CRITICAL_SECTION 无法放入共享内存中。 这使我们要求直接基于Win...

7得票1回答
线程中的关键段是什么?

我正在阅读有关互斥锁、信号量和临界区的内容。我了解互斥锁可以同步资源,以便仅有一个线程在任何时候访问它,信号量允许特定数量的线程访问资源,但临界区是做什么的?