일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재귀
- 비동기 처리
- microtask queue
- 코틀린
- Render object tree
- 플러터 동작
- linebreak
- Kotlin
- Event Loop
- 완전탐색
- Singleton
- 프로그래머스
- dfs
- 자료구조
- 싱글톤
- 자바
- IOS
- flutter
- dart
- 플러터
- 거리알고리즘
- 앱아이콘 변경
- zwj
- Lazy
- Android
- 알고리즘
- 초기화
- Java
- element tree
- 에러
- Today
- Total
목록Event Loop (2)
모바일 개발하는 자바리안의 메모장
Dart는 싱글 스레드 언어이며, 일반적인 의미의 스레드 개념이 없으며, 대체로 Isolate를 사용하여 병렬 작업을 수행할 수 있다. 하지만, Isolate는 별도의 메모리 공간을 갖고 독립적으로 실행되기 때문에 일반적인 스레드처럼 메모리를 공유하지 않는다. 대신, 메시지(Message Passing)를 통해 데이터를 주고받을 수 있다. 각 Isolate는자체적인 실행 환경에서 독립적인 Event Loop을 할당받게 된다.즉, 별도의 Isolate을 생성하게되면 메인 Isolate와 분리된 별도의 Event Loop을 할당 받아 독립적으로 동작하게 된다. Dart의 Event Loop은 Microtask Queue와 Event Queue, 2개의 tassk queue를 포함하고 있으며 각 queue에 ..

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..