LINUX.ORG.RU

История изменений

Исправление 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 реализацию, что примерно всегда лучше.