在硬实时回调中使用锁和互斥锁是非法的.可以在不同的线程中读取和写入锁定自由变量.在C语言中,语言定义可能会也可能不会被破坏,但是大多数编译器都会发出可用的汇编代码,因为变量被声明为volatile(读取器线程将变量视为硬件寄存器,因此在使用变量之前实际发出加载指令,在大多数缓存一致的多处理器系统上运行良好.)
原文链接:https://www.f2er.com/swift/319412.html可以在Swift中声明这种类型的变量访问吗?或者是否需要将内联汇编语言或数据缓存刷新/无效提示添加到Swift语言中?
补充:将使用OSMemoryBarrier()(来自OSAtomic.h)之前和之后以及每次使用或更新任何可能的线程间变量(例如“无锁”fifo /缓冲状态计数器等) Swift强制执行足够有序的内存加载和存储指令(甚至在ARM处理器上)?