Microsoft Visual C++编译器具有EnterCriticalSection
和ExitCriticalSection
对象以允许线程之间的同步。
什么是GCC等效项?
我看到有关__sync_synchronize
和__scoped_lock
的引用
实际上,我看到了许多原子__sync
函数以及许多__atomic
的。
我实际上一直在使用__sync_fetch_and_add
作为我的原子增量
我应该改用__atomic_add_dispatch
吗?
有什么不同?
我应该使用哪个?在C++中,我可以在最新版本的GCC和Visual C++ 2010中使用一些结构,因为我将要编写一些跨平台代码。
我看到boost有一些可用的功能,但是由于种种原因,我不允许在Windows下使用boost。
最佳答案
在Linux(和其他Unixen)上,您需要使用PThreads或Posix Threads。在Windows上没有等效的“关键部分”。改用Mutex。
编辑:请参阅下面的第一个评论-Posix互斥体显然与Win32关键部分相同,因为它们绑定(bind)到单个进程。