Flutter에서 비동기식 처리를 여러 개 수행할 때의 4가지 실행 모드
Future<String> asynchronous(String param) async {
return '戻り値: $param';
}
여러 비동기식 처리를 직렬로 수행
Future<void> example1({required List<String> parameters}) async {
for (final String param in parameters) {
await asynchronous(param);
}
}
여러 비동기 프로세싱을 순차적으로 수행
Future<void> example2({required List<String> parameters}) async {
const int threadNum = 3;
List<Future<bool>> futures = <Future<bool>>[];
Future<bool> f(String param) async {
await asynchronous(param);
return true;
}
for (final List<String> subParams in partition(parameters, threadNum).toList()) {
futures = subParams.map((String param) => f(param)).toList();
await Future.wait(futures);
}
}
동시에 여러 비동기식 프로세싱 수행
Future<void> example3({required List<String> parameters}) async {
final List<Future<bool>> futures = <Future<bool>>[];
Future<bool> f(String param) async {
await asynchronous(param);
return true;
}
for (final String param in parameters) {
futures.add(f(param));
}
await Future.wait(futures);
}
여러 비동기식 작업을 동시에 수행할 수 있는 수 제한 및 실행
Future<void> example4({required List<String> parameters}) async {
const int threadNum = 3;
int currentIndex = 0;
final List<Future<bool>> futures = <Future<bool>>[];
Future<bool> f() async {
while (currentIndex < parameters.length) {
final String param = parameters[currentIndex];
currentIndex++;
await asynchronous(param);
}
return true;
}
for (int threadIndex = 0; threadIndex < threadNum; threadIndex++) {
futures.add(f());
}
Future.wait(futures);
}
참고 자료
Reference
이 문제에 관하여(Flutter에서 비동기식 처리를 여러 개 수행할 때의 4가지 실행 모드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/moimoi_prog/articles/fda2be542c326c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)