공부내용

dart 문법_동기, 비동기

골목코딩 2024. 10. 8. 16:59

동기

 

작업이 순차적으로 처리되는 것을 의미합니다. 하나의 작업이 끝나야 다음 작업이 진행이 되는 것

 

void main() {
  print('작업 1 시작');
  performTask();
  print('작업 1 완료');
}

void performTask() {
  print('작업 2 실행');
}

출력
작업 1 시작
작업 2 실행
작업 1 완료

 

 

비동기

 

작업이 병렬적으로 처리될 수 있습니다. 즉, 작업이 완료될 때까지 기다리지 않고 다음 작업을 바로 시작합니다. 주로 네트워크 요청, 파일 읽기/쓰기 등 시간이 걸리는 작업에 사용됩니다.

 

void main() {
  print('작업 1 시작');
  performTask();
  print('작업 1 완료');
}

Future<void> performTask() async {
  await Future.delayed(Duration(seconds: 2));
  print('작업 2 실행');
}

출력
작업 1 시작
작업 1 완료
(2초뒤에)
작업 2 실행

 

<aside>  await 키워드

  • await은 비동기 함수 내에서만 사용이 가능합니다.
  • await은 Future가 완료될때가지 기다리며 완료되면 결과 값을 반환합니다.
  • await은 비동기 코드를 동기 코드처럼 작성할 수 있게 해줍니다. </aside>

 

이해는 되는데 사용하려면 생각 안날듯.