是否有免费的可移植(Windows、GNU/Linux 和 MacOSX)库提供无锁原子交换功能?
如果不是,如何为这些平台中的每一个实施它?(带有 VC++ 或 g++ 的 x86)
谢谢
是否有免费的可移植(Windows、GNU/Linux 和 MacOSX)库提供无锁原子交换功能?
如果不是,如何为这些平台中的每一个实施它?(带有 VC++ 或 g++ 的 x86)
谢谢
boost中有一个无锁库等待审核。此外,如果您深入研究boost 智能指针库的源代码,您会发现为多个平台内联的原子操作。另一个 - Intel Threading Building Blocks具有模板的实现。atomic<>
Boost 有一组宏,用于以便携的方式促进无锁操作。
看你想换什么。在 x86 的汇编器中,您可能能够获得“几乎”原子异或交换,否则我会使用一些使用锁定的解决方案,这在 Win32/{Linux,Darwin} 上会有所不同。
如果您正在寻找库,请查看 APR(Apache Portable Runtime) - http://apr.apache.org/