Sobes.tech
Middle

Lazy агымдар үчүн коопсуз курулушпу?

sobes.tech AI

AIден жооп

lazy Kotlinде алдын ала белгиленгенде, жипке каршы эмес. Жипке каршы болуу атайын баштоо режимин көрсөтүү аркылуу жеткирилет.

Жарактуу режимдер (тизмек LazyThreadSafetyMode):

  • SYNCHRONIZED: Стандарттык. Бир убакта бир гана жип маанини баштайт. Бардык жиптер бирдей башталган маанини көрөт.
  • PUBLICATION: Бир нече жип бир убакта баштоочу лямбданы ишке ашыра алат. Ийгиликтүү баштаган биринчи жип жеңип чыгат. Башкалардын жыйынтыктары көз жаздымда калат. Күтүп жаткан жиптер алгачкы башталган маанини же башка жип тарабынан башталган маанини алат.
  • NONE: Жипке каршы кепилдиктер жок. Эң тез режим. Эгер бир нече жип бир убакта lazy мүнөздөмөсүнө кирүүгө аракет кылса, бул режимди колдонбоңуз.

Мындай режимди так көрсөтүү менен колдонуу мисалы:

// Жипке каршы SYNCHRONIZED режим (стандарт)
val safeLazyValue: String by lazy {
    // Баштоо коду
    "Жипке каршы сап (SYNCHRONIZED)"
}

// PUBLICATION режими - бир нече жип тарабынан башталат, бирок натыйжа бир гана болот.
val publicationLazyValue: String by lazy(LazyThreadSafetyMode.PUBLICATION) {
    // Баштоо коду
    "Жипке каршы сап (PUBLICATION)"
}

// Жипке каршы эмес режим. Жылдам, бирок коркунучтуу көпжиптүү чөйрөдө.
val unsafeLazyValue: String by lazy(LazyThreadSafetyMode.NONE) {
    // Баштоо коду
    "Жипке каршы эмес сап (NONE)"
}