Безопасна ли функция find() unordered_map при работе с unordered_map через несколько потоков [дубликат] ⇐ Linux
Безопасна ли функция find() unordered_map при работе с unordered_map через несколько потоков [дубликат]
uint16_t GetLevel (константная строка и тег) { static auto *tagMap = new std::unordered_map(); статическийshared_timed_mutex* mtx = новыйshared_timed_mutex; std::decay::type::iterator it; { //Блокировка ReadLock(*mtx); это = tagMap-> найти (тег); } if (it == tagMap->end()) { // новый тег Блокировка InsertLock(*mtx); это = tagMap-> найти (тег); // обеспечено, что два потока выполнили вышеуказанное условие if (it == tagMap->end()) { автоматический результат = tagMap->insert({tag, 1}); если (!result.секунда) { вернуть 0; } это = результат.первый; } } вернуть его->секунду; } Если tagMap->find(tag) не заблокирован с помощью readLock ранее, когда tagMap выполняет tagMap->insert(...) в другом потоке, безопасно ли tagMap->find(tag)?
uint16_t GetLevel (константная строка и тег) { static auto *tagMap = new std::unordered_map(); статическийshared_timed_mutex* mtx = новыйshared_timed_mutex; std::decay::type::iterator it; { //Блокировка ReadLock(*mtx); это = tagMap-> найти (тег); } if (it == tagMap->end()) { // новый тег Блокировка InsertLock(*mtx); это = tagMap-> найти (тег); // обеспечено, что два потока выполнили вышеуказанное условие if (it == tagMap->end()) { автоматический результат = tagMap->insert({tag, 1}); если (!result.секунда) { вернуть 0; } это = результат.первый; } } вернуть его->секунду; } Если tagMap->find(tag) не заблокирован с помощью readLock ранее, когда tagMap выполняет tagMap->insert(...) в другом потоке, безопасно ли tagMap->find(tag)?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Безопасна ли отправка и получение TCP-сокета из двух выделенных потоков в Linux?
Anonymous » » в форуме Linux - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
C++ STL: как работает набор std::unordered и хеширование std::unordered_map?
Anonymous » » в форуме C++ - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-