我正在学习Kotlin的协程。文本A来自https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8
Kotlin Coroutines中的主要保险柜是什么?
这是否意味着系统会在需要时自动在后台线程中运行它们?
这是否意味着在Room和Retrofit操作中我将永远不会使用诸如withContext(Dispatchers.IO)
这样的代码?
文本A
Room和Retrofit都使悬挂功能成为主要安全功能。 从Dispatchers.Main调用这些挂起的乐趣是安全的,即使它们是从网络中获取并写入数据库的。
答案 0 :(得分:2)
Kotlin协程的主要安全手段是什么?
您从字面上引用答案:
从Dispatchers.Main调用这些挂起的乐趣是安全的,即使它们是从网络中获取并写入数据库的。
答案
这是否意味着在Room和Retrofit操作中我将永远不会使用诸如withContext(Dispatchers.IO)之类的代码?
是:正确(假设您正确配置了它们,例如,在翻新乐趣定义中使用suspend
修饰符)。
答案 1 :(得分:0)
对我来说,作为一个Android开发人员,这个简单的定义很完美
找到了当它不阻止UI更新时,我们认为该函数是主安全的 主线程。
答案 2 :(得分:0)
请检查此答案以了解 API 调用与改造一起使用而不将调度程序更改为 IO 的确切原因,引用 https://stackoverflow.com/a/61216333/4354001 :
<块引用>之所以有效是因为 Retrofit 的挂起实现委托给 呼叫入队。这意味着它已经在自己的后台执行 executor 默认情况下,而不是使用调用者的 Dispatcher。