Можно ли использовать библиотеку Pointer Container Library в качестве многопоточной коллекции контейнеров? - PullRequest
2 голосов
/ 18 августа 2011

Можем ли мы использовать библиотеку Boost Pointer Container, чтобы сохранить массив строк с безопасным push и pop потоком и всеми такими операциями?

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Нет, что касается безопасности потоков, к библиотеке контейнеров указателей и стандартным контейнерам библиотеки C ++ применяются одни и те же правила.Они оба безопасны для одновременного доступа к чтению из разных потоков, но должны быть защищены мьютексами для предотвращения одновременного доступа к записи.

Это связано с тем, что контейнеры в библиотеке контейнеров-указателей просто используют базовый container_type<void*> соответствующего стандартного контейнера для хранения объектов.Например, boost::ptr_vector использует std::vector<void*>.

2 голосов
/ 18 августа 2011

Нет, это ответ. И теперь я должен сделать ответ последними 30 символами, когда достаточно двух.

...