Потокобезопасные контейнеры обычно не имеют смысла.Рассмотрим «поточно-ориентированную» очередь:
if(!qu.empty())
{
// 1
qu.pop();
}
Что если во время # 1 очередь изменится и станет пустой?Это нарушает код.Вот почему вы должны использовать блокировки в вашем коде, а не в «поточно-безопасных» контейнерах.