Kotlin 中的挥发性属性?

Volatile properties in Kotlin?

如何在 Kotlin volatile 中标记一个 var?

volatile public var tmpEndedAt: Long? = null

给我错误:"unresolved reference: volatile"。

我决定尝试使用 IntelliJ 中的 "convert java to kotlin" 函数来尝试 Kotlin。显然设置错误。

我尝试做同样的事情,但在应用 Kotlin Gradle 插件并将文件放入 src/kotlin 之后,一切正常。无论如何,谢谢你们的帮助。

代码为:

@Volatile var tmpEndedAt: Long? = null

根据 Kotlin 文档Kotlin-@Volatile

Marks the JVM backing field of the annotated property as volatile, meaning that writes to this field are immediately made visible to other threads.

因此,在 Kotlin 中,您可以使用 @Volatile 注释将 属性 标记为 volatile

例如

@Volatile var tmpEndedAt: Long? = null

在kotlin中,为了强制变量的变化对其他线程立即可见,我们可以使用注解@Volatile。 如果一个变量不在多个线程之间共享,则不需要对该变量使用 volatile 关键字。

换句话说,当您将volatile应用于class的字段时,它指示CPU始终从RAM 而不是来自 CPU 缓存。它还可以防止指令重新排序;它充当内存屏障。

查看 here 了解更多信息:)