Weak Pointers в Go

Слабые Указатели в Go

Слабый указатель (weak pointer) — это указатель, который ссылается на участок памяти без его блокировки, позволяя сборщику мусора удалить этот участок, если больше никто не удерживает его активно....

января 2, 2025 · 5 минут · German Gorelkin
Go sync.Cond - самый недооцененный механизм синхронизации

Go sync.Cond - самый недооцененный механизм синхронизации

Когда горутина ожидает определённого события, например, изменения общих данных, она может «блокироваться», то есть приостанавливать свою работу до тех пор, пока не получит разрешение на продолжение....

декабря 15, 2024 · 15 минут · German Gorelkin
Go Production Performance Gotcha - GOMAXPROCS

Go Production Performance Gotcha - GOMAXPROCS

Переменная GOMAXPROCS ограничивает количество потоков операционной системы, которые могут одновременно выполнять user-level Go код. Количество потоков, которые могут быть заблокированы в системных вызовах от имени кода Go, не ограничено; они не учитываются в ограничении GOMAXPROCS...

декабря 10, 2024 · 4 минуты · German Gorelkin
Go sync.Pool и механика, лежащая в его основе

Go sync.Pool и механика, лежащая в его основе

sync.Pool - это место, где вы можете хранить временные объекты для последующего использования....

ноября 11, 2024 · 19 минут · German Gorelkin
Go sync.WaitGroup и Проблема выравнивания

Go sync.WaitGroup и Проблема выравнивания

WaitGroup - это способ подождать, пока несколько горутин закончат свою работу. Мы начнем с основ, а затем разберемся, как это устроено под капотом....

октября 17, 2024 · 12 минут · German Gorelkin
Go sync.Mutex. Normal и Starvation Mode

Go sync.Mutex. Normal и Starvation Mode

Mutex, или MUTual EXclusion, в Go - это способ убедиться, что только одна горутина одновременно работает с общим ресурсом. Этим ресурсом может быть кусок кода, целое число, map, структура, канал или практически все, что угодно....

октября 13, 2024 · 8 минут · German Gorelkin
goroutine-leaks

Goroutine Leaks

Рассмотрим несколько примером Goroutine Leaks...

апреля 23, 2020 · 3 минуты · German Gorelkin
data-protected-by-confinement

Безопасная Работа с Каналами в Go

При работе с параллельным кодом существует несколько различных вариантов безопасной работы...

апреля 2, 2020 · 4 минуты · German Gorelkin
synchronization-primitives-go

Примитивы Синхронизации в Go

Пакет sync содержит примитивы, которые наиболее полезны для низкоуровневой синхронизации доступа к памяти....

февраля 9, 2020 · 5 минут · German Gorelkin
deadlocks-livelocks-starvation

Deadlocks, Livelocks и Starvation

В 1965 году Эдсгер Дейкстра сформулировал задачу об обедающих философах. Задача была иллюстрацией проблем синхронизации при разработке параллельных алгоритмов и техник решения этих проблем....

января 17, 2020 · 6 минут · German Gorelkin