Flutter开发系列(三)--Dart异步机制与异步编程
Dart是单线程语言,但是请求网络,数据操作和IO操作等耗时操作需要异步,否则可能会导致无响应。Isolate机制是Dart中的异步机制。与Java中的线程不同,Isolate中的线程(可以先称之为线程)是内存隔离的(像进程一样的线程),而Java中的线程是内存共享的。 Dart中的main函数启动时会启动一个进程(可先称之为主线程,或者主isolate)。使用Isolate.spawn可以创建一个新的Isolate。 import 'dart:io'; import 'dart:isolate'; int i; void main() { i = 2; Isolate.spawn(entryPoint, "hello");//开启一个子Isolate } //entryPoint相当于在一个新的子线程中执行 void entryPoint(Stirng message) { print(i); //输出为null,而非2,也说明了主isolate与子isolate内存隔离,无法共享 sleep(Duration(seconds: 10)); //子isolate延迟,不会影响主isolate print(message); } 消息接收器和消息发送器即ReceivePort和SendPort,它们在每个isolate中均存在