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

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

GO

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

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

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

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

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

Тезисы

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

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

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

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

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

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

Видео