在前文《Flutter/Dart中的异步》里,我们知道了Flutter/Dart程序是事件驱动的,Dart代码都是以Isolate的形式存在。每个Isolate内部都有一个事件循环,
Dart代码的运行就是在不停的在处理一个又一个的事件。Isolate之间是不能直接互相访问的,它们之间需要通过来端口(Port)互相通讯。理解这个事件机制是理解Flutter/Dart运行的基础。这个事件机制就如同人体的神经系统一样,可以使程序的各个部分能协同运转。也能为我们回答以下这些问题:
-
Isolate之间如何通过端口(Port)互相通讯? -
定时器
Timer以及微任务是如何工作的? -
程序的I/O是如何进行的?
-
在
Isolate中做网络请求为什么不会阻塞? -
Flutter对Dart的事件机制做了哪些改造?
作者:ad6623
链接:juejin.cn/post/701150…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。