在 Kotlin Native 中提供依赖项时 Koin 的行为是什么?
What's Koin's Behavior when providing dependencies in Kotlin Native?
由于 Kotlin Native 有不同的线程模型,我想知道 Koin 3.0 是如何在 Kotlin Native 中提供它的依赖项的?它的行为是否像 @ThreadLocal
那样只提供依赖项的副本?还是像 Atomic Reference
?
一样处理
Kotlin/Native 中的 Koin 运行 将注入状态或与 Koin 的交互完全限制到主线程。这允许 Koin 内部避免 AtomicReference
,并避免冻结您创建的状态。但是,你不能直接从其他线程注入。
Kotlin/Native 的 Koin 内部结构有几种不同的设计。第一个版本将所有内容保持在冻结状态并可从所有线程访问,但实际上,至少对于原生移动设备而言,大多数注入发生在主线程上。将 Koin 保持在主线程上意味着它不会自动冻结您的状态。
这种设计显然会随着内存模型的变化而放宽,但我预计新的内存模型要到明年某个时候才能投入生产。
由于 Kotlin Native 有不同的线程模型,我想知道 Koin 3.0 是如何在 Kotlin Native 中提供它的依赖项的?它的行为是否像 @ThreadLocal
那样只提供依赖项的副本?还是像 Atomic Reference
?
Kotlin/Native 中的 Koin 运行 将注入状态或与 Koin 的交互完全限制到主线程。这允许 Koin 内部避免 AtomicReference
,并避免冻结您创建的状态。但是,你不能直接从其他线程注入。
Kotlin/Native 的 Koin 内部结构有几种不同的设计。第一个版本将所有内容保持在冻结状态并可从所有线程访问,但实际上,至少对于原生移动设备而言,大多数注入发生在主线程上。将 Koin 保持在主线程上意味着它不会自动冻结您的状态。
这种设计显然会随着内存模型的变化而放宽,但我预计新的内存模型要到明年某个时候才能投入生产。