This chapter covers threads and synchronization in Java and in the Java Virtual Machine. Threads are the de facto mechanism for running several parallel tasks in a process. Locks are the de facto mechanism for constraining access to a critical section of code to one thread at a time. These are the building blocks we need in order to implement parallelism in software.
You will learn the following from this chapter:
How fundamental parallel concepts such as threads and synchronization work in Java and how the Java APIs can be used for synchronization. This includes concepts like
wait
,notify
, and the often misunderstoodvolatile
keyword. We will also briefly look at thejava.util.concurrent
package.The concept of the Java Memory Model, and why it is required. Understanding the memory model is the key to writing working multithreaded Java programs.
How the JVM can efficiently implement threads and synchronization and a discussion about a few different models...