Как правило, операции со стандартными контейнерами не являются потокобезопасными (в основном). Например, вызов size для std::vector может завершиться неудачно при перераспределении.
Поскольку удаление из очереди не перераспределяет и не перемещает элементы, как это делает стандартный вектор, существуют ли условия, при которых вызов size в исключении из очереди может быть небезопасным? Наиболее вероятным сценарием является добавление/удаление элементов в другом потоке во время вызова size, но поскольку доступ к целому числу в основном безопасен, мне трудно придумать, как вызвать size > из отдельной темы было бы проблематично.
Подробнее здесь: https://stackoverflow.com/questions/604 ... hread-safe