Я пытаюсь преобразовать существующие однопоточные алгоритмы заливки в многопоточные.
Вход: - 2-битный массив и его размеры - координаты xy, где должно начинаться заливка
Выход: - тот же двумерный битовый массив с обновленными битами
Проблема: - только 1 поток одновременно может писать в заданные 64 бита (8x8 пикселей) в массиве, также ни один другой поток не может читать этот 64-битный фрагмент во время записи
Я начал с подхода к очереди и пула потоков, поэтому, как только поток завершит свою работу, он может взять другую задачу из очереди.
Как бы вы организовали синхронизацию потоков в соответствии с «проблемой»?
Основная проблема в том, как назначить блокировку чтения / записи данному фрагменту памяти?