Нет, они не поточнобезопасны.Стандартные контейнеры просто не являются поточно-ориентированными, точка.
Однако существует ограниченная степень безопасности потока: если каждый поток обращается к другому элементу , и ни один элемент не доступен двум отдельнымтемы в любой момент времени, тогда это нормально.Однако любая операция, которая изменяет сам контейнер (вставка, стирание), не является поточно-ориентированной, и должен быть синхронизирован.Следовательно, итераторы и ссылки могут потерять свою действительность, и size()
также будет затронут.
Другими словами, если вы отделяете все операции, которые изменяют контейнер, от операций, которые этого не делают, тогда, пока вы немутируя, вы можете безопасно позвонить size()
из нескольких потоков.