Concurrent Access

The member classes const_accessor and accessor are called accessors. Accessors allow multiple threads to concurrently access pairs in a shared concurrent_hash_map. An accessor acts as a smart pointer to a pair in a concurrent_hash_map. It holds an implicit lock on a pair until the instance is destroyed or the release method is called on the accessor.

The const_accessor and accessor classes differ in the kind of access they permit, as shown in Table 5-4.

Table 5-4. Differences between const_accessor and accessor

Class

value_type

Implied lock on pair

const_accessor

const std::pair<const Key,T>

Reader lock: permits shared access with other readers

accessor

std::pair<const Key,T>

Writer lock: blocks access by other threads

Accessors cannot be assigned or copy-constructed because allowing that would greatly complicate the locking semantics.

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.