Drd*_*yor 3 asynchronous kotlin kotlin-coroutines
关于许多语言的异步编程模型状态的著名文章指出,它们存在“颜色”问题,特别是将生态系统分为两个独立的世界:异步和非异步。以下是这种语言的属性:
async def
)await
)SyntaxError: 'await' outside async function
Kotlin 是相当新的语言,所以我认为我应该研究一下它的异步模型。然而,Kotlin 会转换为 JavaScript,所以我相信它存在的颜色问题比我认为它没有的问题要多。但它的协程对我来说有点难以理解并且感到困惑,所以我在这里问这些属性中哪些对于 Kotlin 来说是正确的?(以及它解决了多少颜色问题)。
是的。
是的。
是的。
是的,但他们是来帮助您处理红色功能业务的。您永远不会被迫使用它们来获得一些基本功能。
也是如此,但有很多支持可以减轻疼痛。您可以在runBlocking { }
任何地方使用“升入红色世界”,并且只需编写 即可将入口点本身着色为红色suspend fun main()
。Kotlin 的另一个不错的选择(在许多其他语言中没有看到)是await
类似行为内置于函数本身中,您不必编写myFunction().await()
.
在实践中,Kotlin 协程最痛苦的方面是它们无法消除底层 API 的阻塞。例如,很容易陷入使用阻塞的 Java 文件 IO,并冻结使用同一线程的所有其他协程的进度。编译器也很难确定您何时执行此操作,因此您很难找到它。
归档时间: |
|
查看次数: |
608 次 |
最近记录: |