Of all the new features offered by C++0x, probably the most pervasive is threading.  It affects both the core language as well as the library, and the number of new library components dedicated to threading is extensive.  A high-level roll call includes  threads, futures, promises, asynchronous calls, mutexes, locks, condition variables, and atomics.

Many of these topics could themselves justify an entire session (e.g., there are six ways to wait on a condition variable, four different mutex types, three kinds of futures, etc.) but I’m thinking of offering an overview session that introduces the major players in C++0x threading and thereby lays the groundwork for more detailed examinations later, either during informal discussion sessions or in technical presentations.

What do you think of this kind of session?  Is an overview worthwhile, or would it be better to presuppose knowledge of C++0x threading basics and focus a technical session on a narrower part of C++0x threading support?  Please leave comments to let me know what you think.

Scott