在C++中,最好的用于原子比较并交换操作的跨平台库是什么?
或至少在Linux和Windows上的amd64体系结构中是什么?
这取决于您需要的编译器兼容性。
如果您在两个平台上都使用GCC,则可以直接使用GCC的原子原语,因为它们与硬件架构而非操作系统平台相关联。
否则,如PeterK所建议的,可以查看Boost。有一个Boost.Atomic候选库;我不知道它被纳入的状态是什么。
尝试使用boost。它为原子操作提供了很多支持。
C++0X 最终将解决这个问题。对于 GCC,请参见 http://gcc.gnu.org/wiki/Atomic/GCCMM/ExecutiveSummary 和 http://gcc.gnu.org/wiki/Atomic/GCCMM/DataRaces。