gcc原子支持的类型

时间:2013-09-12 19:48:44

标签: c gcc atomic atomicity

这是最近gcc手册中有关原子操作支持类型的引用。

  

四个非算术函数(加载,存储,交换和比较   所有人都有一个通用版本。这个通用版本   适用于任何数据类型。如果数据类型大小映射到其中一个   可以具有无锁支持的整体尺寸,通用版本   利用无锁内置功能。否则外部呼叫   留待在运行时解决。这个外部呼叫是一样的   格式添加了'size_t'参数作为第一个插入   参数,指示要指向的对象的大小。所有   对象必须大小相同。

原始文件在gcc 4.8.1。我假设硬件只能在简单的32,64和偶然的128位类型上执行原子操作。那么,这些带有指针的函数的通用版本会发生什么?只有对指针的访问实际上可以是原子的,对吗?

另一个相关问题是这些原子如何在像java一样的语言中工作,其中所有东西都是盒装的?原子地访问什么,值或参考?

1 个答案:

答案 0 :(得分:1)

有人提到,对于泛型类型,使用了锁。