Dart真的是平行的还是并发的?

时间:2017-06-07 10:33:32

标签: javascript dart

我刚刚从Google发现了Dart,想知道是否可以使用Dart获得真正的并行性。据我所知,我的答案是否定的,因为最终它的运行方式与Javascript一样(我无法评论它是如何在Dart VM上运行的)但是为什么设计决定引入异步和等待关键字? 这会变成Erlang吗?

1 个答案:

答案 0 :(得分:5)

Dart应用程序可以包含一个或多个分离株。隔离项作为线程运行(其他实现是可能的)并且可以并行运行(也可以在不同的CPU上运行)。隔离区之间的通信与消息传递一起工作。

单个隔离内的代码是单线程的,根本没有并行性。执行是事件驱动的。另请参阅https://webdev.dartlang.org/articles/performance/event-loop

async / await只是使异步代码看起来更像同步代码的语法糖,但它不会使代码同步运行。