dart
是通过 isolate
实现并发的。一个ioslate
对象其实是一个ioslate
执行环境的引用,拥有自己独立的内存和单线程控制。Dart
中不存在共享内存并发,所以不需要锁
一般来说我们都是通过当前的ioslate
去控制其它的isolate完成彼此间的交互。当我们想创建一个新的isolate
可以使用isolate.spawn
方法获取返回的一个新的isolate对象,两个ioslate
间是通过port
(端口)进行交互的,port
只能单向发送消息,所有每个isolate都有一对端口,SendPort
和ReceivePort
,SendPort
用来发消息,ReceivePort
用来接收消息。ioslate
通信是通过一个全局的portMap
去管理派发
网友评论