微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Kotlin Native 中提供依赖项时 Koin 的行为是什么?

如何解决在 Kotlin Native 中提供依赖项时 Koin 的行为是什么?

由于Kotlin Native 有不同的线程模型,我想知道Koin 3.0 是如何在Kotlin Native 中提供它的依赖的?它的行为是否类似于只提供依赖项副本的 @ThreadLocal?还是像 Atomic Reference 一样处理?

解决方法

在 Kotlin/Native 中运行的 Koin 将注入状态或与 Koin 交互限制在主线程中。这允许 Koin 内部避免 AtomicReference,并避免冻结您创建的状态。但是,不能直接从其他线程注入。

Kotlin/Native 的 Koin 内部有几种不同的设计。第一个版本将所有内容保持在冻结状态并可从所有线程访问,但实际上,至少对于原生移动设备,大多数注入发生在主线程上。将 Koin 保持在主线程上意味着它不会自动冻结您的状态。

这种设计显然会随着内存模型的变化而放松,但我不认为新的内存模型要到明年某个时候才能接近生产。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。