concurrent_vector для двумерного массива

В настоящее время я пытаюсь представить двумерный массив, используя tbb :: concurrent_vector . К этому двумерному массиву будет обращаться множество разных потоков, и поэтому я хочу, чтобы он обрабатывал параллельный доступ как можно более эффективно.

Я придумал 2 решения:

  • Используйте tbb :: concurrent_vector > , чтобы сохранить его.

  • Хранить все в tbb :: concurrent_vector и обращаться к элементам с x * width + y

Я предпочел второй, потому что не хочу блокировать целая строка для доступа к одному элементу (поскольку я предполагаю, что для доступа к элементу array [x] [y] ] реализация tbb заблокирует x -ю строку, а затем ] y -й элемент).

Я хотел бы знать, какое решение вам кажется лучше.

6
задан Anton 18 August 2014 в 16:49
поделиться