История изменений
Исправление mersinvald, (текущая версия) :
Mutex работает над всем хэшмапом глобально, не получится гранулярно его использовать над значениями, в таком случае.
Если нужен гранулярный доступ, то нужна структура данных, которая это поддерживает.
Либо RwLock<HashMap<Mutex<T>>>
, которая засчет interior mutability мутексов будет блокироваться целиком только при вставке/удалении, но не при апдейте.
Либо брать вменяемую lock-free реализацию, что примерно всегда лучше.
Исправление mersinvald, :
Mutex работает над всем хэшмапом глобально, не получится гранулярно его использовать над значениями, в таком случае.
Если нужен гранулярный доступ, то нужна структура данных, которая это поддерживает.
Либо RwLock<HashMap<Mutex<T>>>
, которая засчет interior mutability мутексов будет блокироваться только при вставке/удалении, но не при апдейте.
Либо брать вменяемую lock-free реализацию, что примерно всегда лучше.
Исправление mersinvald, :
Mutex работает над всем хэшмапом глобально, не получится гранулярно его использовать над значениями, в таком случае.
Если нужен гранулярный доступ, то нужна структура данных, которая это поддерживает.
Либо ```RwLock<HashMap<Mutex>>````, которая засчет interior mutability мутексов будет блокироваться только при вставке/удалении, но не при апдейте.
Либо брать вменяемую lock-free реализацию, что примерно всегда лучше.
Исходная версия mersinvald, :
Mutex работает над всем хэшмапом глобально, не получится гранулярно его использовать над значениями, в таком случае.
Если нужен гранулярный доступ, то нужна структура данных, которая это поддерживает.
Либо RwLock<HashMap<Mutex>>, которая засчет interior mutability мутексов будет блокироваться только при вставке/удалении, но не при апдейте.
Либо брать вменяемую lock-free реализацию, что примерно всегда лучше.