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
Range по функциям в Go 1.23

Range по функциям в Go 1.23

В Go 1.23 добавлена новая возможность *ranging over functions* (итераторы)...

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

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

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

ноября 11, 2024 · 19 минут · German Gorelkin
Использование benchstat проекций в анализе Go бенчмарков

Использование benchstat проекций в анализе Go бенчмарков

В 2023 году benchstat был полностью переработан: появились проекции(projections), фильтрация и группировки, позволяющие проводить надежные сравнения по любому измерению, определяемому вашими суббенчмарками (они же «cases»)...

ноября 6, 2024 · 11 минут · 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
Go Profilers

Go Профилировщики

Обзор профилировщиков, встроенных в среду выполнения Go: CPU Profiler, Memory Profiler, Block Profiler и Mutex Profiler....

октября 7, 2024 · 15 минут · German Gorelkin
Двенадцать добродетелей рационалиста

Двенадцать Добродетелей Рационалиста

Двенадцать добродетелей рациональности — это набор принципов, которые помогут вам стать более разумным человеком. Эти добродетели помогут вам избегать ошибок в мышлении и принятии решений, а также помогут вам развивать критическое мышление и логику....

сентября 22, 2024 · 9 минут · German Gorelkin
Ментальная модель языка Go

Ментальная модель языка Go

Основная задача Go - мультиплексировать и абстрагировать аппаратные ресурсы, подобно операционной системе. Для этого обычно используются две основные абстракции: Планировщик Goroutine(Goroutine Scheduler) и Сборщик мусора(Garbage Collector)...

сентября 18, 2024 · 5 минут · German Gorelkin