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

Habr ·

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

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

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

Источник: Habr