Threading Building Blocks 3
Threading Building Blocks 3 supports both pre-lambda and lambda syntaxes. With the parallel pipeline, input and output types are template parameters, and are not limited to pointer types. It has an interface closely resembling the C++0x unordered map. It permits concurrent insertion and traversal. No locking is exposed by the interface. An implementation may use locks internally, but the locking is never exposed in a way that can contribute to deadlock. It also has task scheduling predictability and responsiveness via independent task scheduling for different master threads.