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