use*_*2k5 23
该标准允许类型有时无锁.
第29.4条无锁属性
ATOMIC _..._ LOCK_FREE宏指示相应原子类型的无锁属性,有符号和无符号变量组合在一起.这些属性也适用于原子模板的相应(部分)特化.值为0表示类型永远不会无锁.值为1表示类型有时是无锁的.值为2表示类型始终无锁.
在C++原子纸n2427指出背后的原因:
...该提议提供了运行时无锁查询函数而不是编译时常量,因为平台的后续实现可以使用无锁操作升级锁定操作,因此系统通常在动态库后面抽象这些工具,我们希望保持这种可能性.此外,我们建议没有硬件原子支持的实现使用该技术....
而且(正如Jesse Good指出的那样):
该提议提供了对单个对象而不是整个类型的无锁查询函数,以允许不可避免地错位原子变量而不会损害对齐的原子变量的性能
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |