공부내용
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>
이해는 되는데 사용하려면 생각 안날듯.