
Extend the life of threads with synchronization (C++11) - indatawetrust
http://stackoverflow.com/q/15252292/3986712
======
obi1kenobi
My two cents -- just use Cilk Plus: [https://www.cilkplus.org/tutorial-cilk-
plus-keywords#spawn_a...](https://www.cilkplus.org/tutorial-cilk-plus-
keywords#spawn_and_sync)

Why I like it:

\- easy to learn (3 keywords total: cilk_spawn, cilk_sync, cilk_for)

\- runtime handles thread creation, deciding appropriate number of threads
based on hardware

\- provably efficient work-stealing scheduler

\- natively supported in GCC 5, branches available for GCC 4.8/4.9 and Clang

\- comes with a race detector (guaranteed to discover determinacy/data races)

\- trivial to convert your parallel code to serial (#define spawn/sync
keywords -> empty string, and cilk_for -> for)

