我可能对“隔离与 future ”有错误的认识。请帮助我清除它。这是我对这两个主题的理解。
隔离:Isolates在其自己的事件循环中运行代码,并且每个事件都可以在嵌套的微任务队列中运行较小的任务。
期货:期货用于表示将来某个时候可用的潜在值(value)或错误。
我的困惑是:
最佳答案
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文件或URL https://api.dartlang.org/stable/2.0.0/dart-isolate/Isolate/spawnUri.html URL加载不同的Dart代码加载隔离。
隔离不会共享任何状态,只能使用消息传递(SendPort / ReceivePort)进行通信。每个隔离都有自己的事件队列。
https://webdev.dartlang.org/articles/performance/event-loop
关于dart - flutter 孤立与 future ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52498773/