Последовательное и параллельное выполнение асинхронных функций: Promise.all и Promise.allSettled асинхронность: выполнение функций без блокировки основного потока последовательное выполнение: следующая функция…
Как работают последовательные и конкурентные очереди? Очередь — это структура данных, в которой элементы обрабатываются по принципу FIFO: первым обрабатывается тот, кто был добавлен первым. Последовательная (serial)…
GCD (Grand Central Dispatch) — механизм управления задачами в iOS/macOS. Синхронные задачи (sync): поток, который вызвал задачу, блокируется до момента её завершения. Операции выполняются последовательно, поэтому…
В чём разница между Read Committed и Repeatable Read? уровни изоляции в СУБД (ACID) Read Committed: транзакция получает только зафиксированные данные защищает от грязных чтений допускает неповторяющиеся чтения…
пакет для управления временем жизни операций передаёт таймауты, дедлайны и сигналы отмены обеспечивает распространение отмены между goroutines содержит кросс-сервисные метаданные (trace-id, auth) позволяет выполнять…
Зачем закрывать тело HTTP-ответа в Go? Тело HTTP-ответа представляет собой поток данных (io.ReadCloser) Вызов Close освобождает сетевые ресурсы и дескрипторы Если не закрыть тело, возможны утечки памяти и зависшие…
Зачем нужны atomic.Value и atomic.Pointer? синхронизация без mutex при небольших накладных расходах atomic.Value: атомарное чтение и запись значений разных типов atomic.Pointer: атомарная работа с указателями и…
Основой HTTP/3 служит протокол QUIC QUIC работает поверх UDP, а не TCP UDP помогает добиться низкой задержки, поскольку для него не требуется устанавливать соединение Контроль потока и исправление ошибок QUIC…
Зачем нужен контекст в gRPC-запросах и что происходит после его отмены Контекст как инструмент управления жизненным циклом запроса в Go Передача дедлайнов, сигналов отмены и метаданных между клиентом и сервером…
Зачем нужны каналы (Channel) в корутинах? синхронизируют работу goroutine и обеспечивают обмен данными между ними позволяют безопасно передавать значения без блокировок и гонок выступают в роли конвейера или очереди…
Для чего нужны транзакции? база данных, целостность объединение нескольких операций в единое целое атомарность: либо выполняются все операции, либо ни одна изоляция: исключает конфликты между параллельными операциями…