Microsoft Visual C++编译器具有EnterCriticalSectionExitCriticalSection对象以允许线程之间的同步。

什么是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)到单个进程。

10-07 14:20
查看更多