Like many people, it is safe if each thread updates only one of them (no collisions) - IF you have a consistent cache. If you use a multiprocessor without cache matching, things get more complicated (and depends on whether you need write coherence or read consistency). Some architectures may require processor A to write the cache before processor B can see it. Depending on the architecture, if A and B write to the same cache line, then the A record may in rare cases be βlostβ and overwritten by resetting the caching of the B record.
See, for example, DSP and ARM matching issues in DaVinci processors.
In most cases (coherent caches, threads within the same process, etc.) this is not a problem.
jesup source share