Bee*_*eef 4 c++ winapi critical-section interlocked-increment
有人可以帮助解释c ++中互锁变量访问和关键部分互锁增量之间的差异吗?非常感谢,提前谢谢.
基本上,所有这些InterlockedXXX函数或多或少都是内在函数,映射到相对较少(通常是一个)的汇编指令.这样的操作不能被中断,因此被认为是原子的(原子性是在CPU级别实现的,至少如果在目标平台上这是可能的话).
A CRITICAL_SECTION是一个可以保护较长部分的同步原语.它确实会锁定并且竞争线程将被迫等待,直到线程释放关键部分的所有权.
关键部分是OS原语,但它们仅限于单个进程.他们在Windows下的一个关键部分的大哥是一个Mutex,它可以用于跨进程同步.
InterlockedXXX如果可以,请使用这些功能(例如,使用完整的关键部分对象来保护单个计数器是没有意义的).您可能希望先了解各种原型及其用法.许多人使用关键部分,InterlockedCompareExchange他们会...