я открываю файл, используя библиотеку сопоставленных файлов boost. Можно ли использовать «fetch_add» (значение считывается в определенной позиции, затем добавляется к другой и атомарно записывается обратно в ту же самую позицию) в этом сопоставленном файле?
Если несколько потоков пишут в него параллельно, могут возникнуть проблемы без использования атомарности.
Файл имеет двоичный формат и содержит целые или двойные числа (зависит от конкретного файла).
Я также пробовал блокировки/мьютексы, но они всегда замедляют мою программу при использовании нескольких потоков. Время, проведенное в заблокированных областях, слишком велико по сравнению с остальной частью алгоритма, и потоки блокируют друг друга.
Есть ли лучшие способы, чтобы несколько потоков могли записывать в сопоставленный файл с высокой производительностью?
Спасибо. Лаз