There is a lot of information in there and I have only skimmed a few chapters but I found them all excellent. For example Threads - Threat or Menace? stresses using multiple processes over threads. That brought back memories of a multi-threaded Windows application I did at my last job. We had upwards of 5 threads running in that application and we had all the synchronization and memory sharing problems you'd expect with such a system. These weren't just 5 identical worker threads all doing the same task, no each one was handling a different task, and all the data the application was handling got piped through some subset of the threads. On one hand, under Windows, threads are extremely cheap, spawning them is easy and they take up very few resources. On the other hand, as ESR points out in his book, it's not the threads that are the problem it's the IPC and locking that will get you. As far as running 5 threads we were pretty happy with ourselves for that, mostly because one of the applications we worked with most was MS Outlook which at times had upwards of 13 threads running.