In an earlier blog post, Intel’s Michael McCool mentioned that explicit multi-threading has serious drawbacks: Multi-threaded applications are more difficult to test than single-threaded applications and are hard to debug. The main, underlying problem with multi-threading is non-determinism, he asserts. Multiple threads running simultaneously don’t run in lockstep unless you explicitly synchronize them. However, you want to minimize synchronization because it has a negative impact on performance.
To read the full blog post, click here.