Concurrency в Go - барьеры памяти | Как устроены атомики под капотом
Vložit
- čas přidán 15. 06. 2024
- Курсы по программированию: clck.ru/37iG2b
Потренироваться проходить собеседования: it-interview.io
Присоединиться к моему сообществу: boosty.to/vladimir_balun
Консультации:
getmentor.dev/mentor/vladimir...
solvery.io/ru/mentor/vladimir...
Таймкоды:
00:00 - Введение
00:12 - Пример неправильного конкурентного кода
02:16 - Переупорядочевание инструкций компилятором
02:58 - Переупорядочевание инструкций процессором
03:40 - Пример переупорядочевания инструкций
04:32 - Основные операции с памятью
04:46 - Логические барьеры памяти
05:19 - Полный барьер (full barrier)
06:15 - Барьер записи (write barrier)
06:29 - Барьер чтения (read barrier)
07:15 - Acquire barrier
07:31 - Release barrier
07:42 - Внутреннее устройство мьютексов
08:18 - Оптимизации
08:53 - Пример правильного конкурентного кода
11:01 - Заключение
VK: vladimir_balun_program...
Telegram: t.me/vladimir_balun_programming
Instagram: / vladimir_balun_program...
CZcams: / @vladimir_balun_progra...
YandexZen: zen.yandex.ru/id/623b6c964da9...
RuTube: rutube.ru/channel/25079714/
Concurrency в Go. Golang. Конкурентное программирование. Параллельное программирование. Барьеры памяти. Атомики в Go. Мьютексы в Go.
#айти #программирование #golang #concurrency
Здорово, ты первый такое рассказываешь.
По гошке да, такого не встречал еще
Базировано, как всегда!
Спасибо!
спасибо за ваши ролики! и спасибо за участие в собеседовании у Николая Тулзова: были интересные вопросы и задания, я много узнал, много над чем задумался
Спасибо!
Очень круто) спасибо за такое обьяснение
Не за что!
Годный и полезный контент!
Спасибо!
Владимир, спасибо большое, по go мало информации в русскоязычном сегменте, причем с хорошим объяснением, еще раз спасибо! Собираюсь к вам на system design и очень жду бд для разработчиков, который постоянно в разработке)
Спасибо!
Годный контент, ищобы про memory model у голанга в целом видосик
Подумаю на счет этого, спасибо!
Спасибо за видео! Подскажи что почитать на эту тему!? Чувствую что не хватает мат. части.
Рекомендую различные статьи и видео по барьерам памяти в C++
Скажи пожалуйста, стоит ли изучать backend программирование? не заменит ли эту отрасль нейронные сети?
Вов, расскажи еще пожалуйста про атомики, пока для меня это как черный ящик) Желательно не привязываясь к ЯП
Пожалуйста, если вы не возражаете, не могли бы вы добавить субтитры на английском или испанском языке? Я из Мексики, и ваши видео очень хорошие, но автоматический переводчик CZcams заменяет некоторые слова. Я бы очень признателен за это. Привет ! :P
Было бы также неплохо, если бы был разобран момент с видами барьеров, которые в го работают. Допустим, в ходе моих экспериментов я заметил, что LoadLoad барьер в го не всегда тригерится, то есть в таком случае компел/процессор (скорее даже проц, потому что такое поведение я встречал в армах) могут реордерить инструкции, ну и получается такое непредсказуемое поведение.
Тут, я думаю, Вован немного не точен, компилятор в таких штуках непричем, это фокусы процессора и процессорного кэша.
Упрощенно, когда есть инструкции вида A = 1; B = 1 и при этом B находится в кэше ядра процессора, а A не находится и его нужно прочитать из памяти (или из кэша другого ядра) в процессорный кэш, ядро для лучшей производительности выполняет B = 1 в то время, пока A читается из памяти, что и приводит к нарушению порядка инструкций. Но про проц он тоже сказал.
Атомики то как работают ?
Можно так же делать atomic для строки? Или это будет плохо и почему?
Атомик с указателем на строку можно, но нужно смотреть конкретные кейсы
Не знаю go, интересно можно посмотреть assembled код на нем?
Можно, go tool objdump -S
Привет, я бы хотел услышать мнение уже опытных разрабов:)
Как вы относитесь к накрутки опыта в разработке?
Если другие варианты?
У меня сейчас 2 резюме и единственное, что в них различается, это количество опыта, но на одном 2 отлика (о опыта), а на другом 27 (1.7 опыта).
Надеюсь, что вы отлично проводите время.
как компилятор и процессор обманывают программиста. Жулики
Все так)