Summary

Let's conclude this chapter on locked data structures with a summary.

We'll cover the following...

You were introduced to a sampling of concurrent data structures, from counters to lists and queues, and finally to the ubiquitous and heavily-used hash table. You learned a few important lessons along the way:

  • To be careful with the acquisition and release of locks around control flow changes.
  • Enabling more concurrency does not necessarily increase performance.
  • Performance problems should only be remedied once they exist.

This last point, of avoiding premature optimization, is central to any performance-minded developer; there is no value in making something faster if doing so will not improve the overall performance of the application.

Of course, we have just scratched the ...