Особенности и ловушки модели памяти в Go: тайны синхронизации

Вопросы языкознания

GO

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Описание модели памяти Go начинается со слов «если вы читаете этот документ — вы излишне умный, остановитесь». Многие остановились, но Игорь — нет, он изучил модель памяти и по документам, и на практике. Теперь этот излишне умный человек готов поделиться с нами знанием!

Целевая аудитория

Go-разработчики, которым было бы интересно по-другому взглянуть на многопоточное программирование, научиться формально обосновывать корректность программ и использовать продвинутые техники.

Тезисы

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

В рамках доклада расскажу о модели памяти Go, понятным языком объясню отношение happens before, затрону барьеры памяти, обычные и продвинутые (STM и flat combining) способы синхронизации.

Работает в финтехе Яндекса, разрабатывает платежный шлюз, обеспечивающий обработку платежей для всех клиентских сервисов Яндекса.

В Университете ИТМО читает лекции и курирует двухсеместровый курс «Программирование на Go» на кафедре прикладной математики и информатики.

Помимо основной деятельности, выступает на митапах и конференциях, активно делится опытом в соцсетях, ведет YouTube-канал и помогает развитию Go-сообщества.

YouTube — https://www.youtube.com/@igoroutine
Telegram — https://t.me/igoroutine

Видео