This chapter will end with some guidelines related to performance. We cannot stress enough the importance of having a concurrent program running correctly before trying to improve the performance. Also, before applying any of these guidelines related to performance, you first need to set up a reliable way of measuring what you are trying to improve.
Performance guidelines
Avoid contention
Whenever multiple threads are using shared data, there will be contention. Contention hurts performance and sometimes the overhead caused by contention can make a parallel algorithm work slower than a single-threaded alternative.
Using a lock that causes a wait and a context switch is an obvious performance penalty, but what is not equally...