Volatile
@Target([AnnotationTarget.FIELD]) annotation class Volatile
typealias Volatile = Volatile
Для JVM
Помечает поле JVM-поддержки аннотированного var свойства как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда становятся видимыми для других потоков. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
Обратите внимание, что только операции с полем являются атомарными, когда поле аннотировано Volatile. Например, если getter или setter свойства выполняют несколько операций с полем, операция со свойством, то есть чтение или запись через эти аксессоры, не гарантируется, что будет атомарной.
Для Common
Помечает поле-хранилище аннотированного var свойства как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда становятся видимыми для других потоков. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
Эта аннотация имеет эффект в Kotlin/JVM и Kotlin/Native.
Обратите внимание, что только операции с полем являются атомарными, когда поле аннотировано Volatile. Например, если getter или setter свойства выполняют несколько операций с полем, операция со свойством, то есть чтение или запись через эти аксессоры, не гарантируется, что будет атомарной.
Для Native
Помечает поле-хранилище аннотированного var свойства как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда становятся видимыми для других потоков. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
Обратите внимание, что только операции с полем являются атомарными, когда поле аннотировано Volatile. Например, если getter или setter свойства выполняют несколько операций с полем, операция со свойством, то есть чтение или запись через эти аксессоры, не гарантируется, что будет атомарной.
Конструкторы
<init>
Помечает поле-хранилище аннотированного var свойства как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда становятся видимыми для других потоков. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
<init>()
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.concurrent/-volatile/index.html