@Synchronized注解可以用在Kotlin Multiplatform的公共代码(
commonMain
)代码中吗?
该库仅针对 JVM 和 JS。
它会对从该库调用
commonMain
代码的 Kotlin/JS 应用程序产生任何影响吗?
当我在
commonMain
中使用@Synchronized时,Intellij显示它是从import中导入的kotlin-stdlib-common
;在jsMain
中,显示从kotlin-stdlib-js
导入;然而,在这两种情况下,进口声明仍然是import kotlin.jvm.Synchronized
如文档中所述,此注释仅对从 Kotlin 函数生成的 JVM 方法有效:
将从带注释的函数生成的 JVM 方法标记为
,这意味着该方法将被定义该方法的实例(或者,对于静态方法,类)的监视器保护,以免被多个线程并发执行.synchronized
在 the sources of the JS part of the standard library,您可以找到以下关于注释的注释(以及
@Volatile
):
// these are used in common generated code in stdlib // TODO: find how to deprecate these ones