美文网首页
【kotlin】lazy的线程安全模式

【kotlin】lazy的线程安全模式

作者: 果果_Zhen | 来源:发表于2020-01-23 11:49 被阅读0次

    kotlin可以用by lazy初始化一个常量,保证此常量不会多次初始化。但对于Android开发,大部分都属于线程安全(在UI线程里),但lazy默认是线程安全的,会上锁(可以看Java字节码),这样会影响性能。因此需要单独设置LazyThreadSafetyMode(线程安全模式).

    LazyThreadSafetyMode有三种:

    SYNCHRONIZED同步:只会调用一次初始化方法。单例模式:懒汉式,线程安全

    PUBLICATION:会调用多次初始化方法,但只有第一次的有效。

    NONE:会调用多次,且会改变常量的值为最后一次的值。单例模式:懒汉式,线程不安全

    使用:

    val x by lazy(LazyThreadSafetyMode.NONE) { }

    相关文章

      网友评论

          本文标题:【kotlin】lazy的线程安全模式

          本文链接:https://www.haomeiwen.com/subject/clrnzctx.html