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

Привет, Хабр! Эта статья посвящается важной теме работы в многопоточной среде. Для безопасной работы с одним ресурсом из разных горутин разработчик должен быть уверен в безопасности и обособленности действий, чтобы не создать ситуации, в которых "гонки данных" (data race) ломали бы важную логику и создавали коллизии данных. В случаях, когда нужно обращаться к одному источнику из разных горутин в Go обычно используют sync/atomic или Mutex . Основная задача текущей статьи рассказать об их отличиях и о тех случаях, когда лучше применять atomic , чем sync.Mutex . Перед тем, как перейти к различиям, необходимо рассмотреть эти способы по ближе. Читать далее
Привет, Хабр! Эта статья посвящается важной теме работы в многопоточной среде. Для безопасной работы с одним ресурсом из разных горутин разработчик должен быть уверен в безопасности и обособленности действий, чтобы не создать ситуации, в которых "гонки данных" (data race) ломали бы важную логику и создавали коллизии данных. В случаях, когда нужно обращаться к одному источнику из разных горутин в Go обычно используют sync/atomic или Mutex . Основная задача текущей статьи рассказать об их отличиях и о тех случаях, когда лучше применять atomic , чем sync.Mutex . Перед тем, как перейти к различиям, необходимо рассмотреть эти способы по ближе. Читать далее