我需要在我的程序中有原子变量.以前我在使用std::atomic<int>,但我现在正在使用的平台没有支持C++ 0x的g ++编译器.我使用volatile int它似乎正在工作,因为我还没有在多核系统中遇到竞争条件我正在测试它.
我的问题是,如果volatile int是原子一样std::atomic<int>?此外,它是否会产生内存障碍(我也需要)?
是否有用于执行C运行时库或任何其他实用程序库支持的原子操作(如整数的递增/递减)等功能?
如果是,那么使用这些函数可以使所有操作成为原子的?
使用这些函数比正常的同步原语(如互斥体等)更有益吗?
操作系统:Windows,Linux,Solaris和VxWorks