Dr. Dobb’s | Use Threads Correctly = Isolation + Asynchronous Messages | March 16, 2009

Where Threads Fit (and Thread Pools, Sometimes)

In [1], I described the three pillars of concurrency. The first two pillars summarize the two main kinds of concurrency we need to be able to express: 1. Keep things separate, so that independent parts of the program can run asynchronously. 2. Use more cores to get the answer faster using data-parallel and similar techniques. (The third pillar is about controlling concurrency once it has been expressed, using tools like locks and atomics.)

Table 1 summarizes these two pillars, and also summarizes how well each is served by four major tools at our disposal today for expressing concurrency: threads, thread pools, work stealing runtimes, and data-parallel facilities like OpenMP.

via Dr. Dobb’s | Use Threads Correctly = Isolation + Asynchronous Messages | March 16, 2009.

Posted in note. Comments Off on Dr. Dobb’s | Use Threads Correctly = Isolation + Asynchronous Messages | March 16, 2009