Обновить

Атомарные операции против мьютексов в Go: когда скорость становится проблемой

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.9K
Всего голосов 9: ↑7 и ↓2+8
Комментарии3

Комментарии 3

А потом появляется конфигурация с двумя физическими процессорами и протокол когерентности кэшей шлёт пламенный привет производительности.

Тут как раз по соседству статья об атомиках убивающих производительность https://habr.com/ru/articles/986810/

В С++ замерял - std::mutex не намного медленнее самоделок на std::atomic. Самое глупое что можно написать это аналог мьютекса на std::atomic, например цикл пока из 0 не установишь 1, этот цикл в бесполезную гоняет проц вместо того чтобы приостановить выполнение ожидающего потока и отдать его процессорное время другому потоку, как это делает мьютекс. А во-вторых нет гарантии что все ожидающие получат равномерный доступ к ресурсу защищенному такой блокировкой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации