Комментарии 6
Мне кажется вы тёплое с мягким сравниваете. Лично я использую atomic чаще всего, когда мне нужно чаще получать безопасно какую-то структуру, которую в процессе может захотеть меня какой-то другой поток. Кажется это самый оптимальный сценарий, потому что блокировать ничего не надо, нужно получать текущий рабочий участок памяти.
Mutex больше про ситуации как раз описанные в статье, если много потоков меняют память.
Сравнивать их, особенно в одном сценарии даже глупо. У них философия работы вообще разная.
Разумеется философия работы разная. В этом и суть этой статьи, чтобы конкретно сказать что и в каких ситуациях использовать.
Ну изначально посыл статьи даже с заголовка идёт не про "когда использовать", а "кто быстрее". Это и проблема. Если бы было сравнение "когда уместнее", то ещё нормально.
Но в целом вернусь к изначальному тезису: сравниваете тёплое с мягким. Это две разные технологии. Их связывает только использование в конкурентной среде. Но с таким же успехом можно написать статью: "Когда redis все же быстрее mutex".
Добрый день ! На мой взгляд получилось как-то воденисто. Не хватило вывода по бенчмарку представленному: он, конечно, понятен, но, опять же на мой взгляд, не хватает структурированности что ли. Также не хватило большей вариативности тестов(разные условия, входные данные, операции, мб что-то в runtime покрутить). Как бы то ни было - спасибо за статью !
Использовать
sync.Mutexрентабельно, когда:
...
Критическая секция содержит вызовы функций, I/O, аллокации
Я соглашусь, что тут Mutex брать правильно. Но, статья у нас Atomic vs Mutex. И, если честно, то я даже не представляю как в этой ситуации можно выбирать между Atomic и Mutex. Потому что я не понимаю, каким боком тут можно применить Atomic.
Хотя, может статья была задумана не как именно Atomic vs Mutex.А просто вводная про них обоих. Но, это не очевидно из заголовка и вступления.
Добавлю, что заголовок "Когда atomic действительно быстрее Mutex" подразумевает, что иногда бывает и не быстрее. Но вот ни таких примеров, ни выводов вида "атомик всегда сильно быстрее". Только один небольшой тест, показывающий, что вот в этом конкретном случае атомик лучше.

Когда atomic действительно быстрее Mutex