pub struct ConcurrentHashMap<K, V> { /* private fields */ }Expand description
A cache-friendly sharded concurrent hash map
Uses multiple shards to reduce contention. Each shard has its own lock, so operations on different keys in different shards can proceed in parallel.
Implementations§
Source§impl<K: Hash + Eq + Clone, V: Clone> ConcurrentHashMap<K, V>
impl<K: Hash + Eq + Clone, V: Clone> ConcurrentHashMap<K, V>
Sourcepub fn contains_key(&self, key: &K) -> bool
pub fn contains_key(&self, key: &K) -> bool
Check if key exists
Sourcepub fn get_or_insert(&self, key: K, default: V) -> V
pub fn get_or_insert(&self, key: K, default: V) -> V
Get or insert with a default value
Sourcepub fn get_or_insert_with<F>(&self, key: K, f: F) -> Vwhere
F: FnOnce() -> V,
pub fn get_or_insert_with<F>(&self, key: K, f: F) -> Vwhere
F: FnOnce() -> V,
Get or insert with a closure
Trait Implementations§
Auto Trait Implementations§
impl<K, V> !Freeze for ConcurrentHashMap<K, V>
impl<K, V> !RefUnwindSafe for ConcurrentHashMap<K, V>
impl<K, V> Send for ConcurrentHashMap<K, V>
impl<K, V> Sync for ConcurrentHashMap<K, V>
impl<K, V> Unpin for ConcurrentHashMap<K, V>
impl<K, V> UnwindSafe for ConcurrentHashMap<K, V>where
K: UnwindSafe,
V: UnwindSafe,
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more