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 上没有等效的关键部分;改用互斥锁。
编辑:见下面的第一条评论——显然 Posix Mutexes 与 Win32 关键部分相同,因为它们绑定(bind)到单个进程。
关于multithreading - linux上的gcc相当于微软的关键部分是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508507/