Kotlin协程在生产环境中可用吗?它们的实验状态意味着什么?
Kotlin协程在生产环境中可用吗?它们的实验状态意味着什么?
更新: Kotlin 1.3版本起,Kotlin协程不再处于实验阶段。
Kotlin协程可以并且应该在生产环境中使用。这是官方发布Kotlin 1.1时的主要原因。发布后,JetBrains团队承诺在协程逐步发展过程中,会保持向后兼容性,并允许人们在复杂的生产应用程序中安全地尝试使用它们。
简而言之,“实验”和“正常”功能之间的区别在于,对于正常的Kotlin功能,在小型更新中不能添加新内容,因为有“完全兼容性”保证,而对于实验功能,可以添加新内容,但不能删除任何内容(因为存在向后兼容性保证)。
实验性协程使用单独的kotlin.coroutines.experimental
包名称,因此当协程设计完成并将其移动到kotlin.coroutines
包时,旧的编译代码不会中断,而是通过单独的支持库继续工作。
关于为什么它们是“实验性”的以及这意味着什么的进一步讨论(长篇阅读)可以在Andrey Breslav的论坛帖子中找到。
相同的问题也适用于协程支持库。
kotlinx.coroutines
的当前版本是为生产使用而设计的。它已经通过测试进行了很好的覆盖,许多东西已经被优化,所有更改都考虑了与先前编译代码的向后兼容性问题。它确实作为各种基于协程的事物的测试平台,因此在相应函数和类的文档中有一些明确标记为“正在进行中”或“不稳定”的部分。但是,默认情况下,kotlinx.coroutines
中的所有公共API都被认为是稳定的,并且如果需要,将使用适当的迁移辅助工具进行演变。