Невозможно с помощью инкапсулировать контейнеры, предлагающие STL-подобные интерфейсы (которые также выполняются unordered_map) с автоматической блокировкой, поскольку существуют условия гонки, связанные с получением итераторов и позиций внутри строки, а затем попытки использовать их в последующих операциях. Если вы можете найти какой-то менее гибкий интерфейс, который подходит вашим потребностям, возможно, если бы какие-либо сложные операции выполнялись в одноблочные вызовы функций, тогда вы можете легко обернуть класс, безопасный для потоков, вокруг контейнера, чтобы упростить ваше использование.