предположим, что вы хотите перебрать все элементы в очереди, которые реализованы с использованием concurrent_queue<>
и std:queue<>
.
Так как на concurrent_queue<>
нет итератора, поэтому я могу только думать, что мне нужно делать try_pop()
и push()
, пока вы не откроете и не нажмете повторно все элементы в concurrent_queue<>
.
какой из них более эффективен в многопоточном режиме? Делаете это, или просто используете итератор queue<>
и блокируете его, используя критическую секцию или другой мьютекс.
Я знаю, просто делайте тести отметьте, что это ответит на мой вопрос, но мне нужно знать причину, по которой один должен быть быстрее другого.