У меня есть образец мухи, работающий в серийном режиме, где завод использует std::map
для хранения и предоставления доступа к созданным объектам. Заводская фабрика возвращает iterator
, который указывает на объект на карте. Объекты на фабрике являются константами, поэтому они не будут обновляться после вставки, если они не будут удалены.Параллельная фабрика/мухи с TBB
Я хотел бы сделать фабрику одновременно с использованием tbb::concurrent_hash_map
, но я не уверен, каково должно быть возвращение. Я мог бы использовать iterator
(должен ли он быть const_iterator
?), Но в документации говорится, что все итераторы недействительны, когда что-то делает find
или insert
в concurrent_hash_map
. Поэтому я мог бы использовать const_accessor
, так как нужен только доступ только для чтения, но тогда это отличается от последовательной реализации (iterator
против accessor
).
Какой из них лучше использовать? Должна быть важна последовательность в типах (например, итераторах)? Должны быть и серийные, и поточные параметры времени компиляции.
Я думаю, что принудительная последовательная и параллельная реализация в одну концепцию никогда не бывает хорошей. – inf