美文网首页
【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的线程安全模式

    kotlin可以用by lazy初始化一个常量,保证此常量不会多次初始化。但对于Android开发,大部分都属于线...

  • Kotlin 单例

    1.懒汉模式 java kotlin 2.懒加载(非线程安全) java kotlin 3.懒加载(线程安全) j...

  • Kotlin 的单例模式

    Kotlin 的单例模式 1. 在 Java 中的单例模式 懒汉式单例模式,并且是线程安全 2. 在 Kotlin...

  • Kotlin 的单例模式

    Kotlin 的单例模式(5种) Kotlin 的5种单例模式: 饿汉式 懒汉式 线程安全的懒汉式 双重校验锁式 ...

  • Java设计模式之单例模式(七种写法)

    第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: 第二种,懒汉式,lazy初始化,线程安全: 优点:...

  • Kotlin - lateinit vs lazy

    (翻译) 学习Kotlin——lateinit vs lazy lateinit vs lazy 在Kotlin中...

  • 单例模式和DCL

    懒汉模式(lazy init) 上面的方法实现简单,在单线程环境下没有问题,但是在多线程环境下就会有并发安全问题。...

  • Kotlin 单例模式几种写法

    使用对象声明方式,该方式线程安全 使用companion object ,通过lazy 来实现线程安全 自己实现同...

  • 单例模式的五种写法

    懒汉: 线程不安全: 线程安全: 这种写法能够在多线程中很好的工作,而且看起来它也具备lazy loading,但...

  • kotlin 单利模式

    1. 懒汉式 java线程不安全 缺点是在多线程不能正常工作 线程安全 效率比较低 kotlin线程不安全 线程...

网友评论

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

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