gpt4 book ai didi

dart - Flutter 隔离与 future

转载 作者:IT老高 更新时间:2023-10-28 12:32:30 25 4
gpt4 key购买 nike

我可能对孤立和 future 有错误的想法。请帮我清理一下。这是我对这两个主题的理解。

隔离:Isolates在自己的事件循环中运行代码,每个事件都可以在嵌套的微任务队列中运行较小的任务。

Future:Future 用于表示将来某个时间可用的潜在值或错误。

我的困惑是:

  1. 文档说 Isolate 有它自己的循环?我觉得拥有自己的事件队列对我来说更有意义,我错了吗?

  2. future 是否在主 Isolate 上异步运行?我假设 future 的任务实际上被放置在事件队列的末尾,所以如果它将来会被循环执行。如果我错了,请纠正我。

  3. 既然有 future ,为什么还要使用 Isolate?我看到了一些使用 Isolate 代替 Future 来完成繁重任务的示例。但为什么?只有当将来在主隔离队列上异步执行时,它才对我有意义。

最佳答案

Future 是一个句柄,允许您在异步执行完成时收到通知。异步执行使用事件队列,代码在同一个线程内并发执行。

https://webdev.dartlang.org/articles/performance/event-loop

Dart 代码默认在根隔离中执行。

您可以启动通常在另一个线程上运行的其他隔离。隔离可以从与根隔离启动的相同 Dart 代码加载(使用与 main() https://api.dartlang.org/stable/2.0.0/dart-isolate/Isolate/spawn.html 不同的入口点)或不同的 Dart 代码(从某个 Dart 文件加载或网址 https://api.dartlang.org/stable/2.0.0/dart-isolate/Isolate/spawnUri.html )。

隔离不共享任何状态,只能使用消息传递(SendPort/ReceivePort)进行通信。每个隔离区都有自己的事件队列。

https://webdev.dartlang.org/articles/performance/event-loop

关于dart - Flutter 隔离与 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52498773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com