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 了解更多信息:)
如何在 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 了解更多信息:)