Как использовать volatile в Котлине
Я пробовал что-то вроде этого:
private volatile var instanceState: InstanceState = InstanceState.starts
Error: 'Expected member declaration'
и такой:
private volatile var instanceState: InstanceState = InstanceState.starts
Error: 'Property getter or setter expected'
Volatile не поддерживается на Котлине ?
2 ответов
вы можете пометить свойство как volatile
С @Volatile аннотация:
@Volatile var name:String = "stack"
полученное объявление поля эквивалентно Java:
private volatile java.lang.String name;
на @Volatile docs:
помечает поле поддержки JVM аннотированного свойства как volatile, значение, которое записывает в это поле, немедленно становится видимым для остальные потоки.
Котлин не имеет volatile
ключевое слово, но комментария: @Volatile
(https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-volatile/)