Моя проблема в том, что у меня блочная матрица, обновленная несколькими потоками.Несколько потоков могут обновлять непересекающийся блок одновременно, но в целом могут быть условия гонки.Прямо сейчас матрица блокируется с помощью одиночной блокировки.
Вопрос в том, возможно ли (и если да, то как?) реализовать эффективный массив блокировок, чтобы одновременно могли блокироваться только части матрицы.
Рассматриваемая матрица может быть довольно большой, порядка 50 ^ 2 блоков.мое первоначальное предположение состоит в том, чтобы использовать динамически распределенный вектор / карту мьютексов.
Это хороший подход?Лучше вместо этого использовать несколько условных переменных?Есть ли лучший подход?