0

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

四个非算术函数(加载、存储、交换和比较交换)也都有一个通用版本。这个通用版本适用于任何数据类型。如果数据类型大小映射到可能具有无锁支持的整数大小之一,则通用版本使用无锁内置函数。否则,将在运行时解决外部调用。这个外部调用的格式相同,只是添加了一个“size_t”参数作为第一个参数插入,指示被指向对象的大小。所有对象的大小必须相同。

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

另一个相关的问题是这些原子如何在像 java 这样的语言中工作?原子访问什么,值还是引用?

4

1 回答 1

1

提到对于泛型类型使用锁。

于 2013-09-12T20:03:47.503 回答