Event Loop: что и в каком порядке появится в консоли? Event Loop — механизм асинхронного управления очередями задач в JS Все задачи относятся к двум категориям: микротаски (Promises, process.nextTick) и макротаски…
JavaScript однопоточный или многопоточный? В среде выполнения браузера и Node.js JavaScript является однопоточным языком Программа исполняется в главном потоке, которым управляет event loop Асинхронное выполнение…
Колбэки MutationObserver: микротаски или макротаски? MutationObserver — API для наблюдения за изменениями в DOM. Колбэки MutationObserver помещаются в очередь микротасков. Они запускаются после завершения всех…
Когда AlarmManager предпочтительнее WorkManager? Планирование задач, которым требуется точное время запуска Сохранение работоспособности после перезагрузки устройства Выполнение даже при закрытом приложении…
Когда synchronized недостаточно для предотвращения гонки потоков? синхронизация выполняется с помощью мониторного замка механизм действует на уровне одного объекта (монитора) недостаточен при зависимостях между…
В каких случаях следует использовать корутины? организация лёгкой конкуренции выполнение асинхронных операций без блокировки запуск параллельных задач с меньшими издержками, чем у потоков удобная работа в реактивном…
Плюсы и минусы синхронной и асинхронной парадигм в Python Синхронная: код проще читать, понимать и отлаживать Синхронная: операции ввода-вывода блокируют поток Асинхронная: выполнение не блокируется, поэтому подход…
Чем отличаются throw 'message' и throw new Error('message')? throw 'message': выбрасывает примитив string и не формирует стек ошибки throw new Error('message'): создаёт объект Error со стеком вызовов Error…
Фундаментальные отличия Django, FastAPI и aiohttp Django: монолитный фреймворк полного стека, работающий преимущественно синхронно FastAPI: современный асинхронный фреймворк на базе Starlette и Pydantic aiohttp:…
В чём концептуальная разница между WebSockets, REST API и брокером сообщений? Сопоставление технологий обмена данными в веб-приложениях и распределённых системах WebSockets создают постоянное двунаправленное…
Dispatchers.IO и Dispatchers.Default: отличия и сценарии использования Назначение: Dispatchers.IO применяется для блокирующего ввода-вывода, а Dispatchers.Default — для задач с высокой нагрузкой на CPU Пул потоков: IO…
Ключевые различия async/await и GCD async/await — языковая конструкция и синтаксический сахар для асинхронного программирования позволяет писать и читать асинхронные функции почти так же, как последовательный код GCD…