Как работает CAS внутри Atomic-классов CAS — это низкоуровневый механизм атомарного обновления значения в памяти Он сопоставляет текущее значение с ожидаемым (compare) При совпадении значение заменяется новым (swap)…
Паттерн IDisposable в .NET предназначен для управления неуправляемыми ресурсами. Метод Dispose() позволяет пользователю явно освободить занятые ресурсы. Dispose можно вызвать вручную либо автоматически с помощью…
Как устроен планировщик горутин в Go и какую роль играют GOMAXPROCS и ядра ОС В Go используется M:N модель: большое количество горутин распределяется между меньшим числом системных потоков (OS threads). За…
Планировщик задач в Go: кооперативная и вытесняющая многозадачность В Go применяется гибридный планировщик, объединяющий признаки кооперативной и вытесняющей многозадачности При кооперативной многозадачности goroutine…
Как устроен рабочий процесс Gitflow? модель ветвления в Git две базовые ветки: master (релизы) и develop (разработка) отдельные feature-ветки для новых функций создаются от develop release-ветки используются для…
В Go применяется параллельный конкурентный GC В основе лежит трёхфазный алгоритм: маркировка (tracing), приостановка мира и очистка На этапе маркировки GC определяет объекты, которые остаются достижимыми…
Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Как устроен цикл событий (event loop) и как он выполняет асинхронный код? механизм организации асинхронности в JavaScript и средах его выполнения функционирует до тех пор, пока в очереди остаются задачи работает со…
Как устроена FIFO-очередь в RabbitMQ? RabbitMQ представляет собой брокер сообщений, работающий с очередями В стандартной очереди сообщения доставляются по принципу FIFO (First In, First Out) Сначала в очередь попадают…
Сеть Pod — фундаментальный сетевой уровень Kubernetes отвечает за связь между Pod внутри кластера каждому Pod назначается собственный IP-адрес без NAT — обмен данными выполняется напрямую по IP создаётся с помощью…
Как устроена suspend-функция в Kotlin под капотом: стейт-машина? Kotlin coroutines позволяют создавать асинхронный код без блокировки потоков при компиляции suspend-функция превращается в стейт-машину с набором…
Устройство очередной архитектуры и назначение нескольких очередей и экшенджей В основе архитектуры лежит асинхронная обработка событий, при которой задачи распределяются по приоритету и функциональному назначению.…