Back to questions
Junior — Middle
94
Объясни механизм работы асинхронности в языке Dart и как он реализован под капотом
Answer from AI
sobes.tech AI
Асинхронность в Dart реализована с помощью объектов Future и async/await, что позволяет писать неблокирующий код, который выполняется параллельно с основным потоком.
Под капотом Dart использует однопоточный event loop (цикл событий). Когда вызывается асинхронная операция, она запускается, а управление возвращается вызывающему коду. Когда операция завершается, её результат помещается в очередь событий, и event loop вызывает соответствующий callback или продолжает выполнение кода после await.
Таким образом, Dart не создаёт новые потоки для каждой асинхронной операции, а использует модель событий и очередей, что эффективно для UI-приложений, где важно не блокировать главный поток.
Пример:
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2));
return 'Данные загружены';
}
void main() async {
print('Начинаем загрузку');
String data = await fetchData();
print(data);
print('Загрузка завершена');
}