Что делает компилятор C++, чтобы гарантировать, что разные, но соседние области памяти можно безопасно использовать в раC++

Программы на C++. Форум разработчиков
Anonymous
Что делает компилятор C++, чтобы гарантировать, что разные, но соседние области памяти можно безопасно использовать в ра

Сообщение Anonymous »

Предположим, у меня есть структура:

Код: Выделить всё

struct Foo {
char a;  // read and written to by thread 1 only
char b;  // read and written to by thread 2 only
};
Насколько я понимаю, стандарт C++ гарантирует безопасность вышеописанного, когда два потока работают в двух разных местах памяти.
Однако я думаю, что, поскольку char a и char b находятся в одной и той же строке кэша, компилятор должен выполнить дополнительную синхронизацию.

Что именно здесь происходит?

Подробнее здесь: https://stackoverflow.com/questions/533 ... mory-locat

Вернуться в «C++»