Подходят ли межпроцессные контейнеры Boost для совместного использования потоков в одном и том же процессе? - PullRequest
4 голосов
/ 23 февраля 2011

Мне нужен векторный контейнер для совместного использования двумя потоками одного и того же процесса, обеспечивающего защищенный мьютекс доступ для следующих методов:

empty
size
erase
push_back

Я также хотел бы, чтобы коллекция предоставляла итератор, который блокирует контейнер во время его использования. По сути, я ищу коллекцию с std::vector<...> интерфейсом, но с одновременной защитой доступа, но я не могу ничего найти.

Подходят ли контейнеры boost::interprocess для этого применения? Если нет, есть ли альтернатива, которая более подходит, или я должен написать свою собственную?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Ответ - да, это подходит. Смотрите здесь

1 голос
/ 23 февраля 2011

Если boost::interprocess контейнеры не работают, возможно, стоит изучить Intel TBB .Я начал использовать его недавно и был очень доволен.В частности, проверьте tbb::concurrent_vector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...