AP
Size: a a a
AP
☕
AP
☕
UN
SH
P
P
P
P
P
SS
CA
P
CA
С
import 'dart:io';
const count = 100;
void main(List<String> args) async {
/// Создаём все файлы синхронно
for (var i = 0; i < count; i++) {
File('$i.txt').writeAsStringSync('Hello from $i');
}
final f = <Future>[];
for (var i = 0; i < count; i++) {
/// Говорим ему, чтоб после считывания он печатал содержимое файла
f.add(File('$i.txt').readAsString().then(print));
}
/// До этого места эта функция ниразу не прерывалась, соотвественно другие функции не могли перехватить управление
/// Если здесь сделать какие то огромные вычесление на много времени без перерыва, то данные файлов не будут распечатаны, пока эти вычесления не закончатся
/// Ждём пока все файлы распечатаются
/// Вот полсе этой строки функция прерывается и начинает ждать пока всефьючерсы закончатся
/// А каждый фьючерс будет закончен только после распечатки содержимого файла, который будет получен только после прочтения
/// Так как мы вызывали уже выше File().readAsString(), то чтение уже началось и обрабатывается системой
/// Но print для них начнёт выполняться только сейчас
await Future.wait(f);
print('Its end!');
}
AP
SS
С