Template class concurrent_vector<T> supports random access iterators as defined in Section 24.1.4 of the ISO C++ Standard. Unlike a std::vector, the iterators are not raw pointers. A concurrent_vector<T> meets the reversible container requirements in Table 66 of the ISO C++ Standard.
Intel® Threading Building Blocks (Intel® TBB) provides two template classes for thread local storage. Both provide a thread-local element per thread. Both lazily create the elements on demand. They differ in their intended use models:
combinable provides thread-local storage for holding per-thread subcomputations that will later be reduced to a single result. It is PPL compatible.
Template class for scalable memory allocation.
Class that models ReaderWriterMutex Concept that is fair and scalable.
Template class used to wrap a function object in conjunction with class structured_task_group.
A task is a quantum of work that is cancelled or executes to completion. A cancelled task skips its method execute() if that method has not yet started. Otherwise cancellation has no direct effect on the task. A task can poll task::is_cancelled() to see if cancellation was requested after it started running.
Intel® Threading Building Blocks (Intel® TBB) provides a wrapper around the platform's native threads, based upon the N3000 working draft for C++11. Using this wrapper has two benefits:
It makes threaded code portable across platforms.
It eases later migration to ISO C++11 threads.
This section explains known issues with using Intel® Threading Building Blocks (Intel® TBB).