일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- zwj
- dfs
- element tree
- dart
- 자료구조
- 플러터 동작
- Android
- 플러터
- 싱글톤
- IOS
- Lazy
- flutter
- 거리알고리즘
- 자바
- 프리즈드
- linebreak
- Singleton
- Render object tree
- 비동기 처리
- 코틀린
- Kotlin
- 앱아이콘 변경
- 알고리즘
- 초기화
- 완전탐색
- Java
- 에러
- 프로그래머스
- Widget Tree
- 재귀
- Today
- Total
목록비동기 처리 (2)
모바일 개발하는 자바리안의 메모장
Dart는 Single-threaded 환경에서 작동한다. 그럼 우리가 await, async 등을 통해 사용한 비동기 처리는 어떻게 가능할까... 정답은 Event Loop이다. 이벤트 루프는 애플리케이션에서 발생하는 이벤트(예: 사용자 입력, 타이머, 네트워크 응답 등)를 처리하며, 이러한 이벤트가 발생할 때마다 이벤트 루프는 각 이벤트에 대한 callback을 실행한다. 이벤트는 Event Queue에 추가되며 다음과 같이 2개 타입의 Event Queue가 존재한다 : 1. Microtask Queue 2. Event Queue Microtask Queue는 이벤트 루프가 처리해야 할 가장 높은 우선순위를 가지는 작업을 담는 Queue로 Microtask Queue에는 Future.microtas..
Flutter 의 비동기 로직 처리에 사용되는 대표 키워드 Future, await, async에 간략하게 정리해보려한다. 아래 코드는 dart.dev 에서 비동기 처리의 잘못된 예를 보여주기 위해 제공해 준 코드다 : String createOrderMessage() { var order = fetchUserOrder(); return 'Your order is: $order'; } Future fetchUserOrder() => Future.delayed( const Duration(seconds: 2), () => 'Large Latte', ); void main() { print(createOrderMessage()); } 우선 비동기 처리를 선언하는 Future 키워드를 살펴보자. 있다가 다 처..