Are there any concurrent containers in C++11? [closed]

According to Diego Dagum from Microsoft’s Visual C++ Team:

A recurrent question (well, one of the many) is about STL containers
and whether they are thread safe.

Taking Stephan’s words here, the reality is that they aren’t, not as a
bug but as a feature: having every member function of every STL
container acquiring an internal lock would annihilate performance. As
a general purpose, highly reusable library, it wouldn’t actually
provide correctness either: the correct level to place locks is
determined by what the program is doing. In that sense, individual
member functions don’t tend to be such correct level.

The Parallel Patterns Library (PPL) includes several containers that provide thread-safe access to their elements:

  • The concurrent_vector Class is a sequence container class that allows random access to any element. It enables concurrency-safe append, element access, iterator access and iterator traversal operations.
  • The concurrent_queue Class is a sequence container class that allows first-in, first-out access to its elements. It enables a limited set of concurrency-safe operations, such as push and try_pop, to name a few.

Some samples here.

Also interesting: http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)