flutter.dev
dart 병렬처리
paulaner80
2021. 7. 13. 15:25
반응형
import 'dart:async';
Future<int> myAsync(int a) async{
await Future.delayed(const Duration(seconds: 2));
return a;
}
void main(List<String> arguments) async {
var futureList = <Future<int>>[myAsync(1), myAsync(2), myAsync(3)];
var start = DateTime.now();
var resList = await Future.wait(futureList);
print('${resList.runtimeType}');
var end = DateTime.now();
print('run time = ${end.difference(start)}');
var sum = resList.reduce((value, element) => value + element);
print('$sum');
}
log
List<int>
run time = 0:00:02.019648
6
중요한 부분은
var resList = await Future.wait(futureList);
입니다.
futureList의 요소인 myAsync(1), myAsync(2), myAsync(3) 은 병렬처리 됩니다.
그 결과는 List<int> 타입의 resList 에 저장됩니다.