Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 便携式c++;原子交换(Windows-GNU/Linux-MacOSX)_C++_Portability_Swap_Atomicity - Fatal编程技术网

C++ 便携式c++;原子交换(Windows-GNU/Linux-MacOSX)

C++ 便携式c++;原子交换(Windows-GNU/Linux-MacOSX),c++,portability,swap,atomicity,C++,Portability,Swap,Atomicity,是否有提供无锁原子交换功能的免费便携式(Windows、GNU/Linux和MacOSX)库 如果没有,将如何为这些平台中的每一个实施?(使用VC++或g++的x86) 谢谢取决于您想交换什么。在assembler for x86中,您可能能够获得“几乎”的原子异或交换,否则我会使用一些使用锁定的解决方案,这在Win32/{Linux,Darwin}上有所不同 如果您正在寻找一个库,请查看APR(Apache Portable Runtime)-中有一个库正在等待审核。此外,若你们深入研究这个库

是否有提供无锁原子交换功能的免费便携式(Windows、GNU/Linux和MacOSX)库

如果没有,将如何为这些平台中的每一个实施?(使用VC++或g++的x86)


谢谢

取决于您想交换什么。在assembler for x86中,您可能能够获得“几乎”的原子异或交换,否则我会使用一些使用锁定的解决方案,这在Win32/{Linux,Darwin}上有所不同


如果您正在寻找一个库,请查看APR(Apache Portable Runtime)-

中有一个库正在等待审核。此外,若你们深入研究这个库的源代码,你们会发现多个平台的原子操作是内联的。另一个问题是,Intel实现了原子模板。

Boost以便携方式简化无锁操作

尤其应该使用apr原子比较和交换,使用与比较相同的值。放一段时间,因为不能保证交换会发生。对。。。我们讨论的是哪种工作的编译器实现?