Недавно я задал вопрос об использовании volatile и ему было предложено прочитать несколько очень информативных статей от Intel и других, в которых обсуждаются барьеры памяти и их использование. Однако после прочтения этих статей я стал довольно параноиком.
У меня 64-битная машина. Безопасно ли memcpy в смежные, непересекающиеся области памяти из нескольких потоков? Например, скажем, у меня есть буфер:
char buff[10];
Безопасно ли всегда, чтобы один поток копировал memcpy в первые 5 байтов, а второй поток копировал в последние 5 байтов?
Моя интуиция (и несколько простых тестов) показывают, что это абсолютно безопасно, но я нигде не смог найти документацию, которая могла бы меня полностью убедить.