【问题标题】:Switching from coroutines(kotlin) to isolates(dart)从协程(kotlin)切换到隔离(dart)
【发布时间】:2021-11-10 02:06:24
【问题描述】:

我用android和flutter制作的应用,

在 android 中处理复杂计算和网络的 Kotlin 协程

但是,我喜欢 dart-lang

所以我正在考虑从协程切换到隔离。

对此有什么顾虑吗?

【问题讨论】:

    标签: android flutter kotlin dart kotlin-coroutines


    【解决方案1】:

    据我所知,没有普遍的担忧。尽管在进行更改之前您需要考虑一些要点。

    • 并发范式从多线程变为单线程。这意味着您不应该考虑将协程更改为隔离,因为您不会经常使用隔离或用于与协程相同的目的。
    • 隔离用于“极端/独特”的情况,如果您想执行长时间运行的操作,通常不应该选择隔离,您应该使用简单的 async/await 来执行。
    • 使用 async/await 更简单,因为您不必担心资源分配或竞争条件,但同时它允许您做“更脏”的事情,责任在您。
    • 关于 Isolates 的最后想法:它们是一个单独的过程,因此隔离物之间的通信仅通过消息完成,因此基本数据应该在它们之间传递,如果您想返回一些大数据,这可能会让您有些头疼。 (当然,序列化一切皆有可能)

    希望这可以帮助您选择,如果没有,请随时发表评论,我们可以进一步讨论。

    【讨论】:

    • 非常感谢@Sergio Pardo,为什么长时间运行的操作不应该选择隔离?是因为人为失误吗?
    • @Taz 这主要是因为它是一个矫枉过正。为了推断将隔离用于长时间运行的任务对 android 意味着什么,它就像启动另一个应用程序来执行这样的任务,然后再给我一个答案。 Isolate 不仅是一个不同的线程,它还是一个具有不同资源分配的独立进程
    猜你喜欢
    • 2020-07-19
    • 1970-01-01
    • 2021-06-27
    • 2019-11-28
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多