Chapter 11. Diving into Concurrent Data Structures and Synchronization Utilities
One of the most important elements in every computer program is the data structures. Data structures allow us to store the data that our applications read, transform, and write in different ways according to our needs. The selection of an adequate data structure is a critical point to achieve good performance. A bad choice can degrade the performance of an algorithm considerably. Java Concurrency API includes some data structures designed to be used in concurrent applications without provoking data inconsistencies or loss of information.
Another critical point in concurrent applications are synchronization mechanisms. You use them to implement mutual exclusion by creating a critical section, that is to say, a piece of code that can only be executed by one thread at a time. But you can also use synchronization mechanisms to implement dependencies between threads when, for example, a concurrent task must wait for...