Until sometime back until multicore processors came into existance, multithreading was not considered good w.r.t. CPU utilization optimization. In most situations, single threaded applications performed better because the CPU can do only one task at a time, while multithreading adds overhead of managing multiple threads along with performing the intended task.

But now with the advent of multicore processors that no longer holds true. Single threaded applications will use the power of only one CPU optimally while the other CPUs may remain idle. That means the situation has now reversed. When coded well, now multithreaded applications will perform far better as compared to single threaded application.

I just wanted to start this discussion and have your ideas and views on maximizing the CPU utilization in multicore processors, as there are no good articles on this topic here yet.