Dart
Dart 기초 - 비동기 프로그래밍 (8)
아랑팡팡
2024. 5. 14. 21:38
728x90
Dart 기초 - 비동기 프로그래밍 (8)
1. 동기 프로그래밍(Synchronous)
- 동기 / 비동기는 프로그램의 작업의 실행순서나 방식에 대한 특성을 나타낸다.
동기(Synchronoous)
- 동기 프로그래밍은 순차적으로 실행되는 방식
- 하나의 작업이 끝나고 나서 다음 작업이 시작된다.
- 하나씩 실행되기 때문에 순서가 명확하고 예측하기 쉽지만 작업시간이 많이 요소되는 어떠한 작업이 있을 경우 전체적인
프로그램의 효율이 저하될수 있다.
ex)
웹 페이지에서 광고를 로딩하는 경우 광고가 완전히 불러와지기 전까지는 다른 웹 페이지가 차단될 수있다.
import 'dart:io';
void main(){
print("동기 시작");
time();
print("동기 완료");
}
void time(){
sleep(Duration(seconds: 3));
print('3초 작업 완료');
}
2. 비동기 프로그래밍(Asynchronous)
비동기(Asynchronous)
- 특정 작업의 처리 결과를 기다리지 않고 다음 작업을 수행할 수 있도록한다.
- 여러 작업을 처리할 수 있어 효율적인 작업 수행이 가능하고 시간이 많이 걸리는 작업은 백그라운드로 처리해 완료 여부에
따라 콜백 함수나 이벤트를 통해 결과를 처리할 수 있다.
ex)
광고가 다른 기능들과는 독립적으로 재생될수 있어 광고가 로드 되는동안 페이지 내에서 다른 기능을 이용할 수 있다.
import 'dart:io';
void main() async{
print("작업 시작");
time();
print("작업 완료");
}
Future<void> time() async{
print('비동기 시작');
await Future.delayed(Duration(seconds: 3));
print('비동기 완료');
}
728x90
반응형
LIST