Unlike other languages, Java had a well-defined memory model from the very beginning, but over the years additional packages and low-level features have been added to make the most of today's hardware.
In this talk, we'll discuss concurrency in detail starting at the hardware up to Java's latest synchronization mechanisms and finally onto high-level concurrent collections.
This talk will cover hardware memory fences, Java's synchronized and volatile, Atomic classes, newer capabilities added by VarHandles, and some select high-level concurrent collections.
Douglas Hawkins has been passionately developing software for the past 20 years.
Throughout Doug's career, he has focused on creating performance intensive applications
in Java ranging from bioinformatics to financial exchanges.
After 10 years as a Java developer, Doug transitioned to working on Azul's Java Virtual Machine.
Today, Doug continues his interest in building performance tools for developers working on Datadog's Java Application Performance Monitoring.
While Doug's passion for developing software remains, his true passion is in sharing his
interest in low-level details and JVM performance with others.