并发

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

你可能感兴趣的:(并发)