flutter/조금 매운맛 (중급)

[flutter2.0] 12강 | Future-async 심화

lgvv 2021. 8. 23. 12:40

✅ 이번 시간에는 Future-async에 대해서 알아볼 예정이야.

 

중간에 생략된 것은 for문과 while문이라서 뛰어넘었음.

 

✅ Dart에서 Thread란?

다트는 싱글 쓰레드로 이루어져 있다.

Event loop가 존재해서 처리해. 안드로이드 치면 Looper와 같은 개념.

 

✅ Future란?

1. 다트에 의해 future 객체가 내부적인 배열에 등록

2. future관련해서 실행되어야 하는 코드들이 이벤트 큐에 등록

3. 불완전한 future객체가 반환

4. Syncronous 방식으로 실행되어야 할 코드 먼저 실행

5. 최종적으로 실제적인 data값이 future로 전달

future와 then에 대한 코드

 

✅ Async method

1. 메소드를 통해 나오는 결과물은 future

2. Await 키워드를 만날 때까지 synchronous 방식으로 코드 처리

3. await 키워드를 만나면 future가 완료 될때까지 대기

4. future가 완료 되자마자 그 다음 코드들을 실행

 

async에 대한 결과

 

 

Future를 만나면 백그라운드로 넘기고 아래 코드 실행

await 만나면 그 지점에서 반환 받을때 까지 block돼 - sync 방식이라고 생각

 

조금 더 어려운 버전