Назначение и практическое применение DispatchGroup и DispatchBarrier инструменты GCD (Grand Central Dispatch), предназначенные для управления асинхронными операциями в iOS/macOS DispatchGroup объединяет несколько…
Синхронизация в Java — способ защитить критическую секцию synchronized блокирует один монитор (объект) в каждый момент монитор удерживает только один поток, который выполняет критическую секцию остальные потоки…
По умолчанию Android-приложение выполняется в одном процессе однако для компонентов (Service, Activity, ContentProvider) можно задать атрибут android:process компоненты, для которых указаны разные process, будут…
async-функция в любом случае возвращает Promise, даже когда в её теле отсутствует await до первого await код внутри async-функции выполняется синхронно при достижении await выполнение приостанавливается, а управление…
GCD (Grand Central Dispatch) — низкоуровневый фреймворк для многопоточности в iOS/macOS Представляет собой обёртку над pthread и ядром ОС (libdispatch) Предоставляет очереди задач для синхронного и асинхронного…
Высокоуровневая абстракция над потоками с удобным объектным API Поддержка приоритетов и настройка зависимостей между задачами Возможность отменять и приостанавливать операции Поддержка наблюдателей и KVO для контроля…
Почему на собеседовании важно понимать работу стека в многопоточности? управление памятью при выполнении нескольких потоков у каждого потока есть собственный стек вызовов в стеке хранятся локальные переменные и адреса…
Создаётся ли новый поток при выполнении UniTask? UniTask — библиотека, предназначенная для эффективной асинхронной работы в Unity и C# По умолчанию UniTask не создаёт отдельный поток Асинхронное выполнение…
Отличие Data Race от Race Condition Data Race — это многопоточная ситуация, при которой два или более потока одновременно работают с одной переменной, причём хотя бы один поток выполняет запись, а необходимая…
Асинхронные операции программирования Detached task выполняется независимо от родительского потока Обычная task запускается и контролируется родительским кодом, который может ожидать её завершения Detached task не…
Ключевое различие асинхронности и многопоточности асинхронность работает в одном потоке и запускает операции неблокирующе многопоточность задействует несколько потоков для параллельного выполнения асинхронная модель…