Есть ли способ синхронизировать доступ к каждому элементу в выделенной памяти. Например, если выделить память, используя следующий кодСинхронизация доступа к выделенной памяти
int* counters = new int[10];
есть способ для синхронизации модификации каждого счетчика отдельно (будучи в состоянии изменить счетчики [0], счетчики [1] ... счетчики [9] в то же время), так что модификация, скажем, счетчиков [0] не будет блокировать счетчики [9] до тех пор, пока блокировка не будет выпущена для обновления счетчиков [9] и других счетчиков, пока поток обновляет конкретный счетчик, счетчики [0]? Счетчики не связаны и не зависят от каких-либо общих данных с другими счетчиками?
Используйте массив мьютексов. Индекс в массиве mutex соответствует индексу в массиве счетчиков. – Barmar
Я думал об этом, но пейджинг выделенной памяти на диск приводит к повреждению данных. Также существует стандартный способ, отличный от массива мьютексов, чтобы справиться с этой ситуацией? – WhatIf
Если пейджинг имеет какое-либо видимое влияние на программу, отличную от производительности, это будет невероятно серьезная ошибка ОС. – Barmar