ios - 在 iOS 上复制原始类型是原子的吗?

标签 ios objective-c properties arm atomic

我即将在 iOS 的 Objective-C 中为原子属性实现自定义 getter 和 setter。我不确定复制基元类型(如 char、short、int、long、long long、float、double、long double)是否保证在 iOS 平台和 ARM 架构上是原子的。

分配给变量或从方法原子操作返回时是否复制原始值?

最佳答案

如果 iOS 设备在 32 位 ARM 架构上运行,那么任何 64 位访问都不是原子的

这使得 long longdouble 访问在 32 位 ARM 设备上不是原子的。

Afaik Objective-C 不支持 long double 类型。

您可以比较 Linux 对 ARM 架构的原子实现以获得更多信息和想法:

https://github.com/torvalds/linux/blob/master/arch/arm/include/asm/atomic.h

https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/atomic.h

关于ios - 在 iOS 上复制原始类型是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25363414/

相关文章:

android - 在移动设备上打开 Sans 渲染不正确

iphone - MKAnnotation viewForAnnotation 从未被调用

javascript - 动态填充 JavaScript 数组

java - Selenium Webdriver (Java) : What are the benefits (if any) of using an objectmap. 属性文件而不是页面对象类?

Java System.getProperty( "user.timezone") 不起作用

ios - 有导航栏时将事件指示器居中

ios - 推送通知在 UIApplication LaunchOptions RemoteNotificationKey 中不起作用

ios - NSDate 清零时分秒

objective-c - 获取在线/离线可达性通知

objective-c - 自定义 NSView 更改背景颜色时崩溃