Разница между defer, panic и recover в Go defer — отложенный вызов функции: она выполняется при выходе из текущей функции и обычно используется для освобождения ресурсов panic — прерывание обычного выполнения…
Сравнение readinessGate и readinessProbe в Kubernetes Kubernetes: управление готовностью контейнера readinessProbe: определяет, может ли Pod принимать трафик, используя HTTP, TCP или exec-проверку readinessGate:…
Structured и unstructured concurrency Область применения: управление параллельным выполнением и многозадачностью Structured concurrency: задачи выстроены в иерархию и вложены друг в друга, а их жизненный цикл чётко…
thread — низкоуровневый поток, которым управляет ОС task — абстракция асинхронной операции или работы thread напрямую отвечает за исполнение task описывает единицу работы, переданную планировщику task нередко…
Разница между value receiver и pointer receiver При использовании value receiver метод получает копию значения структуры С pointer receiver метод получает указатель на исходную структуру Изменения внутри метода с…
Последовательное и параллельное выполнение асинхронных функций: 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: атомарная работа с указателями и…