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 에 저장됩니다.

'flutter.dev' 카테고리의 다른 글

json 파싱  (0) 2021.07.06
Hive  (0) 2021.05.25
permission_handler 사용법  (0) 2021.04.12
[하는 중.]어셋과 이미지 추가하기  (0) 2019.11.26
Provider  (0) 2019.11.05