From a logical point of view an application may need dozens or hundreds of threads, some of which will we sleeping most of the time, but a very few will be always running co
According to Herb Sutter (one of the leading experts on concurrency), one of the Pillars of Concurrency is Responsiveness and Isolation Via Asynchronous Agents. The summary is:
Stay responsive by running tasks independently and tasks asynchronously, communicating via messages.
Great article (and the series as a whole!). I am still waiting for the book.