Безопасность memcpy () в соседних областях памяти

Недавно я задал вопрос о использовании volatile , и мне было предложено прочитать несколько очень информативных статей от Intel и других, в которых обсуждаются барьеры памяти и их использование. . Однако после прочтения этих статей я стал довольно параноиком.

У меня 64-битная машина. Безопасно ли использовать memcpy в соседнем, неперекрывающиеся области памяти из нескольких потоков? Например, скажем, у меня есть буфер:

char buff[10];

Всегда ли безопасно, когда один поток выполняет memcpy в первые 5 байтов, а второй поток копирует в последние 5 байтов?

Моя внутренняя реакция ( и несколько простых тестов) показывают, что это полностью безопасно, но мне не удалось найти нигде документацию, которая могла бы меня полностью убедить.

5
задан Community 23 May 2017 в 11:51
поделиться