【发布时间】:2019-03-01 02:42:30
【问题描述】:
我可能对孤立和未来有错误的想法。请帮我清理一下。这是我对这两个主题的理解。
Isolate:Isolates 在自己的事件循环中运行代码,每个事件可能会在嵌套的微任务队列中运行较小的任务。
Future:Future 用于表示将来某个时间可用的潜在值或错误。
我的困惑是:
文档说 Isolate 有它自己的循环?我觉得拥有自己的事件队列对我来说更有意义,我错了吗?
未来是否在主 Isolate 上异步运行?我假设未来的任务实际上被放置在事件队列的末尾,所以如果它将来会被循环执行。如果我错了,请纠正我。
既然有未来,为什么还要使用 Isolate?我看到了一些使用 Isolate 代替 Future 来完成繁重任务的示例。但为什么?只有当将来在主隔离队列上异步执行时,它才对我有意义。
【问题讨论】:
-
隔离就像线程。期货不是。因此,如果您有昂贵的计算,Future 仍会阻塞 UI,但 Isolate 不会。
标签: dart flutter future dart-isolates