Middle
25
0
questionbank

Является ли lazy потокобезопасной конструкцией?

Answer from sobes.tech neural network

lazy в Kotlin по умолчанию не является потокобезопасным. Потокобезопасность достигается за счет указания специального режима инициализации.

Доступные режимы (перечисление LazyThreadSafetyMode):

  • SYNCHRONIZED: По умолчанию. Блокировка используется для обеспечения того, чтобы только один поток инициализировал значение в любой момент времени. Все потоки видят одно и то же инициализированное значение.
  • PUBLICATION: Несколько потоков могут одновременно выполнять лямбду инициализатора. Первый поток, успешно инициализировавший значение, выигрывает. Остальные результаты игнорируются. Потоки, ожидающие инициализации, получат либо уже инициализированное значение, либо значение, инициализированное другим потоком.
  • NONE: Никаких гарантий потокобезопасности. Самый быстрый р

lazy в Kotlin по умолчанию не является потокобезопасным. Потокобезопасность достигается за счет указания специального режима инициализации.

Доступные режимы (перечисление LazyThreadSafetyMode):

  • SYNCHRONIZED: По умолчанию. Блокировка используется для обеспечения того, чтобы только один поток инициализировал значение в любой момент времени. Все потоки видят одно и то же инициализированное значение.
  • PUBLICATION: Несколько потоков могут одновременно выполнять лямбду инициализатора. Первый поток, успешно инициализировавший значение, выигрывает. Остальные результаты игнорируются. Потоки, ожидающие инициализации, получат либо уже инициализированное значение, либо значение, инициализированное другим потоком.
  • NONE: Никаких гарантий потокобезопасности. Самый быстрый р

Register or sign in to get access to full answers for all questions from the question bank.

threadinglazy-evaluationthread-safetyconcurrencyinter-process-communicationmultiprocessing