同步属性获取者/设置者

所以我试图去处理Kotlin如何处理属性的同步。 如果我有这个班级:

class Foo { var a = 0 var b = 0 } 

我想确保a&b具有同步的所有访问权限。 我该怎么做? 我试过使用注释:

 class Foo { @Synchronized var a = 0 @Synchronized var b = 0 } 

但Kotlin给我一个编译器错误:

 This annotation is not applicable to target 'member property with backing field' 

我只是想在Kotlin上更好地处理线程安全问题。 这是我一直在Java的强迫症,我试图找出如何妥善处理它在Kotlin。

您无法在属性上同步,但可以在访问器方法上同步。 使用以下语法:

 class Foo { var a = 0 @Synchronized get @Synchronized set //or @get:Synchronized @set:Synchronized var b = 0 }