我正在学习 Dart 的未来,并阅读了一些关于Future
.
它说 Dart 是单线程的,我们可以用它Future
来让一些昂贵的函数稍后运行,例如读取文件。
假设读取一个文件需要 10 秒,而我有 3 个文件要读取。
我的飞镖代码:
main() {
readFile("aaa.txt");
readFile("bbb.txt");
readFile("ccc.txt");
print("Will print the content of the files later");
}
readFile(String filename) {
File file = new File(filename);
file.readAsString().then((content) {
print("File content:\n");
print(content);
});
}
由于读取文件需要 10 秒,所以上面的代码至少需要 30 秒,对吧?使用future读取文件只是为了让昂贵的任务在以后一个接一个地运行,不会阻塞当前代码,但不会降低总成本?
如果在 java 中,我可以创建一个线程池,并让 3 个未来的任务并行运行,总成本将在 10 到 20 秒之间。
是否可以在 Dart 中做同样的事情?使用 Dart 的隔离是唯一的解决方案吗?