pub struct SyncHashMap<K, V> { /* private fields */ }
Expand description
同步哈希映射,支持多读少写的场景 this sync map used to many reader, writer less. space-for-time strategy
Implementations§
Source§impl<K, V> SyncHashMap<K, V>
impl<K, V> SyncHashMap<K, V>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
使用指定容量创建一个新的映射
Sourcepub fn insert_mut(&mut self, k: K, v: V) -> Option<V>
pub fn insert_mut(&mut self, k: K, v: V) -> Option<V>
可变引用下的插入操作,无锁保护(调用者需确保线程安全)
Sourcepub fn remove_mut(&mut self, k: &K) -> Option<V>
pub fn remove_mut(&mut self, k: &K) -> Option<V>
可变引用下的移除操作,无锁保护(调用者需确保线程安全)
Sourcepub fn shrink_to_fit(&self)
pub fn shrink_to_fit(&self)
收缩容量以适应元素数量,使用写锁保护
Sourcepub fn shrink_to_fit_mut(&mut self)
pub fn shrink_to_fit_mut(&mut self)
可变引用下的收缩容量操作,无锁保护(调用者需确保线程安全)
Sourcepub fn get_mut<Q>(&self, k: &Q) -> Option<SyncMapRefMut<'_, K, V>>
pub fn get_mut<Q>(&self, k: &Q) -> Option<SyncMapRefMut<'_, K, V>>
获取键对应的可变值引用,使用写锁保护
Sourcepub fn contains_key<Q>(&self, k: &Q) -> bool
pub fn contains_key<Q>(&self, k: &Q) -> bool
检查是否包含指定的键,使用读锁保护
Sourcepub fn into_inner(self) -> HashMap<K, V>
pub fn into_inner(self) -> HashMap<K, V>
消耗self并返回内部的HashMap
Sourcepub fn values_mut(&self) -> ValuesMut<'_, K, V>
pub fn values_mut(&self) -> ValuesMut<'_, K, V>
获取值的可变迭代器,使用写锁保护
Sourcepub fn remove_entry(&self, k: &K) -> Option<(K, V)>
pub fn remove_entry(&self, k: &K) -> Option<(K, V)>
尝试移除键值对,如果键存在则返回被移除的值,使用写锁保护
Sourcepub fn get_or_insert(&self, k: K, default: V) -> &mut V
pub fn get_or_insert(&self, k: K, default: V) -> &mut V
如果键存在则返回其可变引用,否则插入新值,使用写锁保护
Sourcepub fn get_or_insert_with<F>(&self, k: K, default: F) -> &mut Vwhere
F: FnOnce() -> V,
pub fn get_or_insert_with<F>(&self, k: K, default: F) -> &mut Vwhere
F: FnOnce() -> V,
如果键存在则返回其可变引用,否则使用函数返回值插入,使用写锁保护
Trait Implementations§
Source§impl<K, V> Clone for SyncHashMap<K, V>
impl<K, V> Clone for SyncHashMap<K, V>
Source§impl<K, V> Debug for SyncHashMap<K, V>
impl<K, V> Debug for SyncHashMap<K, V>
Source§impl<K, V> Default for SyncHashMap<K, V>
impl<K, V> Default for SyncHashMap<K, V>
Source§impl<'de, K, V> Deserialize<'de> for SyncHashMap<K, V>
impl<'de, K, V> Deserialize<'de> for SyncHashMap<K, V>
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<K, V> From<HashMap<K, V>> for SyncHashMap<K, V>
impl<K, V> From<HashMap<K, V>> for SyncHashMap<K, V>
Source§impl<K, V> Index<&K> for SyncHashMap<K, V>
索引操作,无锁访问(unsafe但在单线程场景下高效)
impl<K, V> Index<&K> for SyncHashMap<K, V>
索引操作,无锁访问(unsafe但在单线程场景下高效)
Source§impl<'a, K, V> IntoIterator for &'a SyncHashMap<K, V>
impl<'a, K, V> IntoIterator for &'a SyncHashMap<K, V>
Source§impl<K, V> IntoIterator for SyncHashMap<K, V>
impl<K, V> IntoIterator for SyncHashMap<K, V>
Source§impl<K, V> PartialEq for SyncHashMap<K, V>
impl<K, V> PartialEq for SyncHashMap<K, V>
Source§impl<K, V> Serialize for SyncHashMap<K, V>
impl<K, V> Serialize for SyncHashMap<K, V>
impl<K, V> Eq for SyncHashMap<K, V>
impl<K, V> Send for SyncHashMap<K, V>
标记为Send,因为使用了UnsafeCell但有锁保护 this is safety, dirty mutex ensure
impl<K, V> Sync for SyncHashMap<K, V>
标记为Sync,因为使用了UnsafeCell但有锁保护 this is safety, dirty mutex ensure
Auto Trait Implementations§
impl<K, V> !Freeze for SyncHashMap<K, V>
impl<K, V> !RefUnwindSafe for SyncHashMap<K, V>
impl<K, V> Unpin for SyncHashMap<K, V>
impl<K, V> UnwindSafe for SyncHashMap<K, V>where
K: UnwindSafe,
V: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more