Как уже говорили многие, безопасно, если каждый поток обновляет только один из них (без коллизий) - ЕСЛИ у вас есть связный кеш. Если вы используете многопроцессорный процессор без когерентности кэша, все становится сложнее (и различаются в зависимости от того, нужна ли вам когерентность записи или когерентность чтения). Некоторым архитектурам может потребоваться процессор A для выполнения обратной записи в кэш, прежде чем процессор B сможет его увидеть. В зависимости от архитектуры, если A и B записывают в одну и ту же строку кэша, запись A может в редких случаях быть «потеряна» и перезаписана сбросом строки кэша записи B.
См., Например, проблемы когерентности DSP и ARM в процессорах DaVinci.
В большинстве случаев (связные кэши, потоки в одном и том же процессе и т. Д.) Это не проблема.